我有一个相当大的范围(10,000 行,10 列),我每天都会逐行填充它。我还有一个较小的范围(366 行,5 列),其中,对于每个单元格,我运行一个宏。该宏的作用与 DSUM 或 SUMIF 的作用几乎相同,但具有多个条件。
问题是,在实现了这个奇特的东西之后,我无法正确地填充我的东西,因为在我填充的每个单元格上,宏都运行了几十次,每次它循环数百次,大约需要 5 秒才能让我填充下一个单元格。
我希望能够阻止更新较小的范围(或不运行宏),这样我就可以正常填充所有内容,然后按一个按钮来更新所有内容。
您需要锁定目标范围(设置Locked
范围的属性true
)。然后您需要通过调用来保护工作表Protect()
工作表的方法。以下是如何锁定和解锁单元格的示例A1:A4
.
Locks:
Sheet1.Range("A1:A4").Locked = true
Sheet1.Protect()
Unlocks:
Sheet1.Unprotect()
Edit:重新阅读问题后,OP 似乎正在使用 Worksheet_Change 事件。对此我有一句话:
STOP
只需将 ActiveX 按钮放入工作表中,然后为其指定一个宏,如所述here http://peltiertech.com/WordPress/how-to-assign-a-macro-to-an-activex-control/.
Worksheet_Change 事件充满了危险。进来的人要小心,因为里面有龙。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)