
Así que estoy intentando crear una macro que combine varios archivos .csv en una hoja de trabajo de Excel. Utilicé el siguiente tutorial para ello: código vba
Sin embargo, una vez que introduzco la ruta correcta a los archivos .csv, aparece el mensaje "Error de tiempo de ejecución '1004: Lo siento, no pudimos encontrar April2019.csv. ¿Es posible que se haya movido, renombrado o eliminado?" (April2019.csv es el primer archivo de la carpeta). Entonces, la macro obviamente encuentra la carpeta correcta y el archivo .csv, pero luego se detiene y no tengo idea de por qué. He estado intentando cambiar un poco el código pero no funciona. El siguiente código es el que estoy usando en este momento, créditos a Jie Jenn, quien realizó el tutorial.
Option Explicit
Dim wsMerge As Worksheet
Dim RowInsert As Long
Sub Merge_Files()
Const FolderPath As String = "H:\Documents\Invoices\"
Dim Files As String
Dim wbTemp As Workbook
Dim LastRow As Long
Set wsMerge = ThisWorkbook.Worksheets("Merge")
RowInsert = 2
Files = Dir(FolderPath + "*.csv")
Do Until Files = ""
Set wbTemp = Workbooks.Open(Files)
With wbTemp.Worksheets(1)
LastRow = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("A2:N" & LastRow).Copy
wsMerge.Range("A" & RowInsert).PasteSpecial xlPasteValues
Application.DisplayAlerts = False
wbTemp.Close False
Application.DisplayAlerts = True
RowInsert = RowInsert + LastRow - 1
End With
Files = Dir()
Loop
MsgBox "File Merge Complete", vbInformation
End Sub
El error surge cuando "Establezco wbTemp = Workbooks.Open(Files)"
Espero que este sea suficiente contexto para el problema.
Respuesta1
Sólo proporcionas el nombre del archivo cuando utilizas esta parte del código Set wbTemp = Workbooks.Open(Files)
. Archivos solo contiene el nombre del archivo, por ejemplo myfile.csv
. Falta el camino. Modifíquelo para que se convierta en:
Set wbTemp = Workbooks.Open(FolderPath & Files)