workbook.open问题宏Excel

时间:2016-08-26 03:08:35

标签: excel-vba vba excel

我在使用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'。检查文件名的拼写并验证文件位置是否正确。 如果您尝试从最近使用的文件列表中打开文件,请确保.....

3 个答案:

答案 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