Excel后宏不更新

时间:2015-12-19 15:05:49

标签: excel vba excel-vba

运行宏后,我的Excel工作簿不会更新,直到用鼠标左键双击

Application.ScreenUpdating = True

代码结束时。我尝试选择并激活一个单元格无效

Application.ScreenUpdating = True
Range("A6").Select
Range("A6").Activate

宏在内存中非常密集大约40秒,然后它就完成了。我不想发布整个宏,因为其中一些是专有的。但它是使用内置Excel函数的标准宏。

4 个答案:

答案 0 :(得分:3)

您是否在分配了宏的工作表上使用“表单控制”按钮?如果是这样,我一直在解决未正确激活工作表的问题,而选择不同工作表再返回的解决方法与我最初使用的解决方法相同。

如果是这种情况,请尝试使用命令按钮(ActiveX控件)替换Button(窗体控件),并将下面的子项添加到正确的工作表中。

'You can create this by right clicking the button after placing it and click 'View Code'
Private Sub CommandButton1_Click() 'Or Private Sub WhatEverYourButtonIsCalled_Click()
    Call TheMacroYouWantToUse
End Sub

我知道这可能是值得回答的,而不是值得回答但我仍然有8个声誉,因为我不能自由发表评论,所以我会提前道歉。

答案 1 :(得分:1)

我会检查工作簿是否处于手动计算模式,然后尝试强制工作表在宏的末尾重新计算。

Worksheet(1).Calculate

答案 2 :(得分:1)

由于没有足够的帖子我无法发表评论,我必须将此作为答案发布:SilentRevolution的解决方案是正确的,我也遇到了这个问题并在阅读完他的答案后意识到这一点只是在工作簿中我运行了一个我遇到它的表单控件。

我认为发布此内容非常重要,因为早期的答案认为这甚至是一个编程问题,但它是一个Office 365 Excel VBA问题,而不是硬件问题。

这在早期版本的Excel中不是问题,并且无法在其中复制。

答案 3 :(得分:1)

我认为使用VBA Excel 2016制作数学工作表时遇到了类似的问题。

我使用互连子程序,每个子程序使用自制的rnd()函数,该函数本身使用rnd()函数。加载后第一次按下"新Q&1型#1;#34;如果最后一次使用是"新问题的类型1",那么按钮似乎不会更新工作表,但是对于其他类型和后续尝试的类型1将会更新。

事实证明,由于ScreenUpdating = True而导致第一次运行时,它产生了新的但相同的问题(包括一个6位数的随机表参考号)...通过包括" randomize&#来治愈34;在过多的,现在已知多余的ref陈述中。