由于大量对象隐藏/取消隐藏而导致代码运行缓慢

时间:2013-04-19 16:51:50

标签: performance excel button hide

我有一个大约20,000行的电子表格。此电子表格是一个层次结构,显示设备的零件清单。我创建了创建按钮(实际上是形状矩形)的代码,允许用户通过隐藏/取消隐藏行来扩展/收缩这些组。

我认为代码运行缓慢,因为电子表格上有几千个按钮,我相信每次隐藏行时都会刷新。当我单击代码运行的按钮时,正确的行隐藏/取消隐藏,然后所有按钮消失几秒钟然后重新开始。在行隐藏或取消隐藏之后发生了消失,因此代码已经完成运行。

有没有办法阻止Excel刷新每个按钮?有没有不同的问题?

2 个答案:

答案 0 :(得分:0)

听起来您可以使用Excel中的数据透视表功能。我确信它比电子表格使用的宏/按钮快得多:

PIVOT TABLE OUTLINE Pivot Table Outline

您只需要将数据重新组织成一个合适的格式。祝你好运。

如果您需要透视表的说明,您可以直接谷歌“透视表教程。 http://www.google.com/search?q=%22pivot+table+tutorial%22

答案 1 :(得分:0)

我使用了一种解决方法,当代码很方便时我会详细说明,但就像这样:

  1. 让按钮创建宏在单元格中创建超链接而不是文本+/-和工具提示>>expand/collapse<<

    ActiveSheet.Hyperlinks.Add _
        Anchor:=[A1], Address:="", _
        SubAddress:=[A1].Address, _
        ScreenTip:=">>expand/collapse<<", _
        TextToDisplay:="+/-"
    
  2. workseet_followhyperlink事件中,请检查工具提示是否为>>expand/collapse<<,如果是,请按照宏观进行播种和隐藏。

    if target.screentip = ">>expand/collapse<<" then 
        myShowHideMacro
    else
        'do other stuff
    end if