【发布时间】:2012-10-24 17:31:32
【问题描述】:
我不是经验丰富的 VBA 程序员,我需要社区来发现 Excel 的问题。
我的问题是,在 Excel 中,代码在以下行之后立即停止执行:
Application.ScreenUpdating = True
我使用以下来自 msdn 网站的示例代码:
Dim elapsedTime(2)
Application.ScreenUpdating = True
For i = 1 To 2
If i = 2 Then Application.ScreenUpdating = False
startTime = Time
Worksheets("Sheet1").Activate
For Each c In ActiveSheet.Columns
If c.Column Mod 2 = 0 Then
c.Hidden = True
End If
Next c
stopTime = Time
elapsedTime(i) = (stopTime - startTime) * 24 * 60 * 60
Next i
Application.ScreenUpdating = True
MsgBox "Elapsed time, screen updating on: " & elapsedTime(1) & _
" sec." & Chr(13) & _
"Elapsed time, screen updating off: " & elapsedTime(2) & _
" sec."
来源:http://msdn.microsoft.com/en-us/library/office/ff193498.aspx
但是,Msgbox 永远不会被执行,VBA 也不会显示任何错误 - 它只是默默地失败。
知道为什么会发生这种情况以及如何解决吗?
【问题讨论】:
-
对我来说没问题:您是否将代码添加到模块中的 Sub 中?
-
您在哪个事件中编写了这段代码?我建议使用按钮单击事件调用宏来隔离错误源
-
刚刚将代码粘贴到一个模块中并且运行良好。为什么这个问题被赞成了??
-
另外,您是否单步执行代码以确定执行失败的确切原因?
-
您好,我确实单步执行了代码,并且它完全停止在 Screenupdating = True 的行上。但是,我找到了错误的根源——验证自动规则的功能失败。修复它,然后代码开始正常工作。
标签: vba excel excel-2010