最近,我注意到上下文菜单的创建(根据您所使用的电子表格的不同,添加了许多不同的宏按钮,等等。)>
出于测试目的,我在工作簿对象的vba中具有以下测试宏:
Private Sub App_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Dim OnActionString As String Dim cmdNew As CommandBarButton For Each icbc In Application.CommandBars("cell").Controls If icbc.Tag = "brccm" Then icbc.Delete Next icbc For i = 1 To 70 Set cmdNew = Application.CommandBars("cell").Controls.Add With cmdNew .Caption = "RecordedOrNot" .OnAction = "UTILITY_RecordedOrNot" .BeginGroup = False .Tag = "brccm" End With Next End Sub
即使在空白工作表上,它也会使右键单击上下文菜单显示大约2秒钟。我有一个很大的工作表,上面有大约80,000行,上面有很多数据,并且需要7秒才能出现在该工作表上。
这看起来应该是非常快的代码-有人知道为什么它很慢或知道加快它的方法,或者为什么在大型工作表上它比较慢?在执行此操作时是否可以禁用Application。*中的某些功能?
现在将尝试任何操作,因为这链接到我部门的关键工具集。
最近,我注意到上下文菜单的创建(根据您所使用的电子表格的不同,添加了许多不同的宏按钮等),它的运行速度越来越慢。为了测试目的,我有以下内容...
一个选项可能是在打开工作簿时预加载所有控件...,然后根据显示逻辑使控件可见(或不可见)。我在Range(“ A1:Z80000”)中具有随机数据的工作表上进行的测试表明,与实时添加和删除控件相比,这大约需要三分之一的时间执行(显示/隐藏控件的时间约为1.4秒,删除/显示控件的时间约为4.5秒在我的PC上添加)。