首页 > 解决方案 > 通过 VBA 打开源工作簿时 VLookups 不更新

问题描述

我有一个主要工作簿,它对来自单独工作簿的数据进行计算。我在主工作簿上创建了一个按钮,用于打开源工作簿以方便用户(这样他们就不必通过目录来查找源文件)。

我将以下宏分配给按钮以打开文件:

Sub OpenIRTSumReport()
'
' Open the IRT Sum Report as given by the file path in the "START" tab
'
    Dim dir As String
    Dim fileName As String
    dir = Worksheets("START").Range("$C$3").value
    fileName = Worksheets("START").Range("$C$4").value
    
    If dir <> "" And fileName <> "" Then
        Dim path As String
        path = Chr(34) & dir & "\" & fileName & Chr(34)
        
        Workbooks.Open path
        
        ThisWorkbook.Activate
    End If
End Sub

我的问题:主工作簿中的链接仍然显示#REF!即使在按下按钮打开工作簿后也会出错。如果我手动打开源工作簿,链接更新正常,但使用 VBA 宏不会更新链接,尽管工作簿已打开。

我试过按下全部刷新按钮,我确保链接和公式设置为自动更新,我什至尝试在单元格中重新输入公式,但它仍然没有出现。

我相信#REF!我的主要工作簿链接中的 INDIRECT 函数发生错误,但它可能是 VLOOKUP,我不完全确定。只是此刻非常失落。

编辑:更多的故障排除;问题肯定出在 INDIRECT 函数上。我可以使用硬编码引用而不是 INDIRECT 将 VLOOKUP 重新输入到不同的单元格中,并且 VLOOKUP 工作正常。

干杯,马修梅尔滕斯

标签: excelvbaexcel-2016

解决方案


推荐阅读