【问题标题】:Opening workbook from file and updating link in original workbook从文件中打开工作簿并更新原始工作簿中的链接
【发布时间】:2018-01-24 21:40:14
【问题描述】:

我正在尝试在 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,以防万一。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

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

    book.RefreshAll
    

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

    ThisWorkbook.RefreshAll
    

    【讨论】:

    • 我需要刷新正在使用宏的工作簿的公式,而不是正在打开的工作簿。
    • 如果是,请使用 ThisWorkbook.RefreshAll
    • 事实证明,EnableCalculation 在 Excel 2010 中不起作用。同时打开与原始工作簿相同的应用程序的工作簿会自动刷新所有引用工作簿的公式。不过感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 2017-05-26
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多