Copiado de datos usando array para columnas origen y destino
Un favor me pudieran ayudar con lo siguiente
Quisiera obtener los resultados como se encuentran en el archivo "0 PD CARGA POL 20 07.Xlsm" Hoja "RECIB", los datos los debe de extraer del archivo "Recibidas_2020_08_Facturas.xlsx, trate de introducir las columnas en matriz sin embargo debido a que mi pc es lenta y manejo muchos datos fue la razón por la que decidí introducir mis columnas en matriz tanto las columnas que estoy copiando, así como las columnas de destino, sin embargo no lo hace correctamente, adjunto mi macro para cualquier apoyo, corrección de antemano, les agradezco
Sub Macro2()
'
Application.ScreenUpdating = False
Dim ws2, ws1 As Worksheet, Mat
Dim Q&
Set ws1 = ActiveSheet
ws2 = "Selecciona el libro a procesar"
MsgBox ws2, vbOKOnly
ws2 = Application.GetOpenFilename(Title:=ws2)
If ws2 = False Then Exit Sub
On Error GoTo 0
Set ws2 = Workbooks.Open(ws2)
Sheets("XML").Select
If [B2] = "" Then
MsgBox "Libro u Hoja sin Informacion."
End If
'ReDim Matt(1 To 58)
Q = Range([B1], Cells(Rows.Count, "b").End(xlUp)).Rows.Count
colso = Array("B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG")
colsd = Array("A", "B", "D", "E", "F", "G", "H", "I", "J", "K", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH")
If [B2] <> "" Then
For col = LBound(colso) To UBound(colso)
For col2 = LBound(colsd) To UBound(colsd)
Cells(2, colso(col)).Resize(Q).Copy
ws1.Cells(4, colsd(col2)).Resize(Q).PasteSpecial xlPasteValues
Next
Next
End If
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub
1 respuesta
Respuesta de Dante Amor
2