excel vba计数器和他们的一生(ish)

可以说我有5个工作表和..

shcount = worksheets.count

现在我有程序删除基于一些细节的工作表,然后我循环的过程再次做到这一点。 还是等于5还是现在等于4.我正在阅读的这本书的作者似乎暗示,它保持在5,因为在她循环之前,她把这个程序:

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

是的,它会停留在5,因为它是当你分配工作表.Count到你的variables5时。 该variables不是与计数相关的快捷方式,而是在某个时间点计数的副本。 在赋值(shcount = worksheets.count)之后,shcount和worksheets.count之间没有链接,改变count不会影响variables作为一个独立的副本。

要更新shcount,你将不得不做另一个任务(即shcount = worksheets.count),或者保持作者自己的价值。

你的问题有点混乱。

shcount = worksheets.count将值5赋值给variablesshcountshcount将保持在5,直到其值被修改。 它没有链接到实际的Worksheets集合。

你应该看整个系列的Excel VBA介绍 。 这个video: Excel VBA简介第3部分 – 怎么办当事情出错(错误和debugging)将教你如何逐句通过你的代码,逐行检查variables的值。

在这里,我设立了一个手表。 通过这种方式, shcount的值将在观察窗口中可见。 还要注意这个variables是在Locals窗口中。

当我浏览代码时,你可以看到它的价值变化。

在这里输入图像说明