
그래서 여러 .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
"Set wbTemp = Workbooks.Open(Files)"하면 오류가 발생합니다.
이것이 문제에 대한 충분한 맥락이기를 바랍니다.
답변1
이 코드 부분을 사용할 때만 파일 이름을 제공합니다 Set wbTemp = Workbooks.Open(Files)
. Files에는 예를 들어 파일 이름만 포함됩니다 myfile.csv
. 경로가 없습니다. 다음과 같이 수정하세요.
Set wbTemp = Workbooks.Open(FolderPath & Files)