【发布时间】:2016-07-18 19:45:08
【问题描述】:
我正在尝试使用集合在每次运行子之前将变量设置为等于 0。我有一堆指标作为单独的子例程,对于每个子例程,我将变量声明为 long,然后将它们全部设置为 0,然后让它们从所需的任何数据中提取。我希望不必每次都将它们设置为 0,而是在开始时将它们设置为相等,这样就不必将其放入每个子例程中,但我不清楚如何要做到这一点。我试过这段代码,但我不知道它是否正确或放在哪里:
Dim myVars As Collection
Set myVars = New Collection
Dim j As Variant
myVars.Add a
myVars.Add b
myVars.Add c
myVars.Add d
myVars.Add e
For j = 1 To myVars.Count
myVars(j) = 0
Next j
【问题讨论】:
-
如果它们是全局变量,您可以创建一个新的子 SetToZero(),您只需在其他每个子的顶部运行。
-
j是一个循环计数器,不要将其声明为variant!这样做会在您稍后查看代码时造成混乱,并且会带来轻微的性能损失 - 每次使用j时,VBA 都必须确定其中包含的数据的类型。这对于您的 5 个项目的循环来说并不是什么大问题,但是随着代码库的增长,它会开始累加起来,您会想知道为什么您的代码需要永远运行。 -
我得到一个对象所需的错误 j 否则我该如何解决这个问题
标签: vba excel variables subroutine