我试图在VBA中编写一个宏,它将使用单元格中指定的PathFile打开另一个工作簿(这可行),更新工作簿中使用宏的链接(不起作用)并关闭PathFile工作簿(工作) 这是一个代码:
Sub UpdateRaw()
Dim CurrWb As Workbook
Dim FilePath As String
Dim book As Excel.Workbook
Set CurrWb = ActiveWorkbook
FilePath = Range("I1").Value
Dim app As New Excel.Application
app.Visible = True 'so we can see whether correct file is being opened
Set book = app.Workbooks.Open(FilePath)
CurrWb.Activate
Worksheets("Raw_vs_Actual").EnableCalculation = False
Worksheets("Raw_vs_Actual").EnableCalculation = True
book.Close SaveChanges:=False
app.Quit
Set app = Nothing
End Sub
一步一步地发现命令CurrWb.Activate并没有把我带回原来的工作文件。我怀疑通过打开新的Excel应用程序,我无法回到CurrWb(ActiveWorkbook)。有解决方法吗?我需要这个,所以我的INDIRECT函数不会返回#REF。
我正在使用Excel 2010,以防它变得非常重要。
答案 0 :(得分:1)
我认为Set book = app.Workbooks.Open(FilePath)应该足够了,但如果没有刷新工作簿:
book.RefreshAll
用于打开的工作簿。对于包含宏的工作簿,请使用
ThisWorkbook.RefreshAll