excel vba计数器及其生命周期(ish)

时间:2016-11-14 02:19:57

标签: excel vba excel-vba

假设我有5个工作表和..

shcount = worksheets.count

现在我有程序删除基于某些细节的工作表,然后我循环程序再次执行它。 shcount是否仍然等于5或现​​在它等于4.我正在阅读的书的作者似乎暗示它保持在5,因为在她循环程序之前,她放入了这个:

shcount = shcount -1 循环直到shcount = 1就像一个计数器

2 个答案:

答案 0 :(得分:1)

是的它会保持在5,因为当你为你的变量分配了workheets.count时它是5。变量是与计数相关的快捷方式,它是某个时间点的计数副本。在赋值(shcount = worksheets.count)之后,shcount和worksheets.count之间没有链接,更改计数不会影响变量作为其孤立的副本。

要更新shcount,您必须执行另一项任务(即shcount = worksheets.count),或者在作者正在进行时自行维护该值。

答案 1 :(得分:0)

你的问题有点令人困惑。

shcount = worksheets.count将值5分配给变量shcountshcount将保持为5,直到其值被修改。它没有指向实际Worksheets集合的链接。

您应该观看整个系列Excel VBA Introduction。此视频:Excel VBA Introduction Part 3 - What to do When Things Go Wrong (Errors and Debugging)将教您如何逐步执行代码并逐行检查变量值。

我在这里为shcount设置了一个监视。这样,shcount的值将在监视窗口中显示。另请注意,该变量位于Locals窗口中。

当我单步执行代码时,您可以看到它的价值变化。

enter image description here