从文件打开工作簿并更新原始工作簿中的链接

时间:2018-01-24 13:22:51

标签: excel vba excel-vba

我试图在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,以防它变得非常重要。

1 个答案:

答案 0 :(得分:1)

我认为Set book = app.Workbooks.Open(FilePath)应该足够了,但如果没有刷新工作簿:

book.RefreshAll

用于打开的工作簿。对于包含宏的工作簿,请使用

ThisWorkbook.RefreshAll