因此,我尝试制作一个宏,将多个 .csv 文件合并到一个 excel 工作表中。我使用了以下教程: vba 代码
但是,当我输入正确的 .csv 文件路径后,我收到“运行时错误 '1004:抱歉,我们找不到 April2019.csv。它可能被移动、重命名或删除了吗?”(April2019.csv 是文件夹中的第一个文件)。因此,宏显然找到了正确的文件夹和 .csv 文件,但随后它停止了,我不知道为什么。我一直在尝试稍微更改代码,但不起作用。下面的代码是我目前正在使用的代码,感谢编写本教程的 Jie Jenn。
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
当我“设置 wbTemp = Workbooks.Open(Files)”时出现错误
我希望这足以说明这个问题。
答案1
使用这部分代码时,您只给出了文件名Set wbTemp = Workbooks.Open(Files)
。例如,文件仅包含文件名myfile.csv
。缺少路径。将其修改为:
Set wbTemp = Workbooks.Open(FolderPath & Files)