Excel VBA-运行时错误1004打开工作簿

vba相当新颖,但是我写了一个代码,在列中取消合并,从而复制单元格,然后粘贴到不同的macros工作簿中。 当我第一次运行代码时,代码运行良好。 不过,我今天试图使用它,我很震惊,我有一个错误。 这个错误说明它找不到目标文件名。 这很奇怪,因为目标文件名没有改变或移动。 这里是一个代码示例。

错误显示在行:

设置book2 = Workbooks.Open(“财政'17报告跨骑Fuel Usage.xlsm”)

代码如下:

Public Sub Button6_Click() 'Change name of button Worksheets("7500").Buttons("Button 6").Text = "Send" With Sheets("7500") 'Unmerge cells .Range("AI3:AI92").Select With Selection For Each rCell In Selection With rCell If .MergeCells Then .MergeArea.UnMerge End If End With Next rCell End With End With 'open destination workbook Dim book1 As Workbook Dim sheet1 As Worksheet Dim book2 As Workbook Dim sheet2 As Worksheet Application.ScreenUpdating = False Set book1 = ThisWorkbook Set book2 = Workbooks.Open("Fiscal '17 Reported Straddle Fuel Usage.xlsm") Set sheet1 = book1.Sheets("7500") Set sheet2 = book2.Sheets("Nov '17") 

目标文件名称没有更改或移动

你没有指定path。 指定一个path。

 Set book2 = Workbooks.Open("Fiscal '17 Reported Straddle Fuel Usage.xlsm") 
 Const path As String = "C:\Foo\Bar\Fiscal '17 Reported Straddle Fuel Usage.xlsm" Set book2 = Workbooks.Open(path) 

无论CurDirpath如何, Workbooks.Open可以工作,并且每当用户出现“打开文件”对话框时, CurDir的值就会改变,并且他们开始浏览:没有完整path的文件名是不可靠的。

和许多VBA中的许多东西一样,最好清楚一点。 给它一个完整的path。