当对话框打开以更新链接时停止宏的代码

时间:2015-09-27 22:46:11

标签: excel vba excel-vba

我有一个总计表,其中包含未来表格的预加载公式(由宏生成)。我有一个宏,可以在连接到未来工作表的单元格上按下输入并刷新公式。

但是,由于尚未创建将来的工作表,Excel将打开一个对话框,要求搜索公式链接到的文件。我必须每次手动按取消才能绕过这个。这种方法并不理想,因为有数千行。

有没有一种方法可以构建一个代码,一旦它到达生成打开对话框的第一个单元格就停止宏?

我的代码是:

$ uniq -c file | awk '/E/&&($1>m){m=$1} END{print m+0}'
2

2 个答案:

答案 0 :(得分:0)

我想简单的外部链接会在禁用警报的情况下更新,并且跳过错误会执行您的操作:

Sub UpdateLinks()
    On Error Resume Next
    Application.DisplayAlerts = False
    ThisWorkbook.UpdateLink Name:=ThisWorkbook.LinkSources
    Application.DisplayAlerts = True
End Sub

答案 1 :(得分:0)

实际上,您不需要转到单元格并按Enter键刷新公式。你可以给Excel重新计算“重新计算”命令:

  

在所有打开的工作簿中重新计算自上次计算以来已更改的公式以及依赖于它们的公式。如果将工作簿设置为自动重新计算,则无需按F9重新计算。

来源:https://support.office.com/en-us/article/Change-formula-recalculation-iteration-or-precision-73a772d5-6224-407c-8029-60a47488b6aa

所以你可以从你的宏发送'F9'键:

Application.SendKeys "{F9}"

还可以考虑直接从宏更改Excel公式的手动/自动更新:

Application.Calculation = xlCalculationManual
Application.Calculation = xlCalculationAutomatic