excel - 链接更新时需要暂停 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 立即更新为零。
有什么建议么?
谢谢,史蒂夫
解决方案
您将需要调用函数来计算公式和更新链接,如下所示:
更新公式: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 也可以。
推荐阅读
- python - 我如何让敌人不惜一切代价避开角色线,同时仍然试图消灭他
- photoshop - 如何在图层上创建 360 度旋转的 Photoshop 脚本对话框
- memory - “将某事读入内存”和“将某事读入内存”是什么意思
- java - 包在 Java 中是如何工作的,特别是在使用 VSCode 时?
- html - 如何将文本行移动到顶部
- r - 我的 group_by 和 mutate 函数无法正常工作
- python - 为什么 pyautogui.mouseDown() 执行与 pyautogui.Click() 相同?
- ruby-on-rails - 警告:不推荐对关系调用搜索
- c - 如何创建指向二叉树节点的链表?
- c++ - 我正在写一些代码,但出现了这个错误