我正在尝试打开两个不同的工作簿来传输数据 . 工作簿的完整位置位于当前工作簿的两个单元格中 . 第一个工作簿正确打开但打开其他工作簿时出错 . 它说:
run time error 1004. File can't be found.
但是,如果我直接在代码中使用工作簿的路径,那么它工作正常 . 有人请告诉我我做错了什么 .
Sub ProcessReport()
Dim MainWb As Workbook
Dim DestWb As Workbook
' Load source and destination files
Set DestWb = Workbooks.Open(Range("E10").Value)
Set MainWb = Workbooks.Open(Range("E6").Value)
' Code for manipulation
End Sub
1 回答
在原始代码中,第二个
workbooks.open
命令正在从工作簿"DestWb"读取单元格"E6",因为这是执行该命令时的activeWorkbook,而不是保存宏的工作簿 . 您可以通过更改:对此:
这将从运行宏的工作簿中保存"Sheet1"作为对象引用,以便您的宏尝试使用保存宏的工作簿中的"E10"和"E16"中的文件路径 .
Range("E6").Value
现已通过工作表ws
限定 .您可以将"Sheet1"更改为宏工作簿中文件路径所在的选项卡 .