Excel VBA-打开工作簿时出现运行时错误1004
对vba来说很陌生,但我编写了一段代码,该代码取消列中的行合并,从而复制单元格,然后粘贴到不同的宏工作簿中。当我第一次运行代码时,它运行得很好。然而,我今天试图使用它,我很震惊我有一个错误。此错误表示找不到目标文件名。这很奇怪,因为目标文件名没有更改或移动。下面是一个代码示例 错误显示在第行: Set book2=工作簿。打开(“2017财年”报告的跨座燃油 用法“.xlsm”) 代码如下:Excel VBA-打开工作簿时出现运行时错误1004,vba,excel,runtime-error,filenames,Vba,Excel,Runtime Error,Filenames,对vba来说很陌生,但我编写了一段代码,该代码取消列中的行合并,从而复制单元格,然后粘贴到不同的宏工作簿中。当我第一次运行代码时,它运行得很好。然而,我今天试图使用它,我很震惊我有一个错误。此错误表示找不到目标文件名。这很奇怪,因为目标文件名没有更改或移动。下面是一个代码示例 错误显示在第行: Set book2=工作簿。打开(“2017财年”报告的跨座燃油 用法“.xlsm”) 代码如下: Public Sub Button6_Click() 'Change name of bu
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")
目标文件名未更改或移动
您没有指定路径。指定路径
无论CurDir
路径是什么,Workbooks.Open
都可以关闭,CurDir
的值在用户看到“打开文件”对话框并开始四处浏览时发生变化:没有完整路径的文件名是不可靠的
与VBA中的许多事情一样,最好明确地说明它。给它一个完整路径。您的工作簿文件名或路径很可能已更改。不相关,但如果
book1
是thiswoolk
,如果您删除book1
并使用已有的thiswoolk
对象引用,代码将更容易理解。还有,请看。。。然后,您已经在该块中引用了sheet1
。块…让我困惑的是,为什么您从两个不同的集合中访问同一个工作表(工作表
,然后在下一行工作表
)-移动按钮(“按钮6”).Text
赋值到带有
块的中。同时,Public
的事件处理程序也会引发一个标志。而且压痕也低于标准。我建议您看看如何帮助您改进代码。我对这是我实际编写的第一个代码非常陌生。但这是有道理的,谢谢你。粘贴时是否也应使用“路径”而不是文件name@ShellyPig令人惊叹的。看看你是否不确定下一步要做什么。没有,但如果你不确定发生了什么,你需要阅读有关在VBA中使用变量和常量的内容。谢谢它起作用了,我不知道为什么事件处理程序是公共的。它甚至不在我的原始代码上。但是再次感谢你的帮助。
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)