我在使用workbooks.open进行文件搜索时遇到了问题。执行宏时,它显示运行时错误“1004”。实际上,我从YouTube上学到了这一点。 谁能知道问题是什么?
此代码实际上在我们路径的一个文件夹中找到多个excel文件。
Sub checkcopy()
Dim cf As String
Dim erow
cf = Dir("C:\Supplier\")
Do While Len(cf) > 0
MsgBox ("Check")
If cf = "SummaryCheckFile.xlsm" Then
Exit Sub
End If
MsgBox ("Check 1")
Workbooks.Open (cf)
Range("A1:E1").Copy
ActiveWorkbook.Close
erow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Paste Destination:=Worksheets("Sheet1").Range(Cells(erow, 1), Cells(erow, 4))
checkFile = Dir
Loop
End Sub
对不起,
它的节目
找不到'go.xls'。检查文件名的拼写并验证文件位置是否正确。 如果您尝试从最近使用的文件列表中打开文件,请确保.....
答案 0 :(得分:0)
尝试提供cf
的路径,例如cf = "c:\XXX\filename.xlsm"
,而不是cf = "filename.xlsm"
。
答案 1 :(得分:0)
Dir()
仅返回文件名 - 它不包含路径,因此您需要在调用Workbooks.Open()
此外,您的循环永远不会退出(除非第一个文件是" SummaryCheckFile.xlsm")因为对Dir()
的所有其他调用都将返回值分配给checkFile
,所以{{ 1}}永远不会被清除。
cf
答案 2 :(得分:0)
在打开包含宏的xlsm并导致运行时错误且没有响应时,尝试使用参数CorruptLoad。
Application.DisplayAlerts = False
Workbooks.Open ("enter your file path here"), CorruptLoad:=xlExtractData
Application.DisplayAlerts = True