首页 > 解决方案 > 链接更新时需要暂停 VBA 脚本

问题描述

核心问题似乎在子程序中。为简单起见,我将其放在主程序中:我面临的问题在以下代码中:

Sub US_Sub01()

Dim NAtotal As Integer

NAtotal = Worksheets("Dashboard").Cells(20, "C").Value

MsgBox(“NAtotal”)'这告诉我有多少剩余的链接需要更新。从 4540 开始。

Do Until NAtotal = 0 '这个循环应该一直持续到 NAtotal 达到零为止。

NAtotal = Worksheets("Dashboard").Cells(20, "C").Value

DoEvents

Loop

NAtotal从 4540 不变,从不倒计时。如果我打破宏单元 C20 立即更新为零。

有什么建议么?

谢谢,史蒂夫

标签: excelvbawaitpausedoevents

解决方案


您将需要调用函数来计算公式和更新链接,如下所示:

更新公式:Application.Calculate

更新链接:ThisWorkbook.UpdateLink

如果您想要此过程的状态更新,您将需要遍历工作簿中的每个单元格并为每个单元格使用如下代码:

ThisWorkbook.Worksheets("Sheet1").Range("A1").Calculate

然后设置Worksheets("Dashboard").Cells(20, "C").Value = total cells - loop count,但我认为这会使您的代码减慢太多而无法使用,但如果您想要这个,请告诉我,我可以创建代码。

如果您想告诉用户工作表正在更新,您可以执行以下操作:

Excel.Application.StatusBar = "Updating Links & Formulas"
'Changes the "Ready in the status bar to what you want it to say
Application.Calculate 'Calculate Formulas
ThisWorkbook.UpdateLink 'Update Links
Excel.Application.StatusBar = False 'Changes back to "Ready" status

只需:Do Events在您Set ActiveWKB = Workbooks.Open("Sub01.xlsm")可能的末尾添加 a 也可以。


推荐阅读