Excel VBAvariables使用:使用多个variables还是一个数组来存储信息更好一些

我已经使用VBA了大约一个月了,这个论坛已经成为我第一个“编程”语言的一个很好的资源。 当我开始对VBA数组更加熟悉的时候,我开始想知道存储variables的最好方法是什么,而且我确信这里有人知道可能是一个编程新问题的答案:

有10个彼此独立使用的Stringvariables或独立使用的Stringvariables数组(独立,我的意思是他们在数组中的位置无关紧要,在程序中使用)之间有任何区别。 有些代码我使用的地方可能有9个公共variables。 尽pipe事实上我不需要保持彼此之间的顺序,那么将它们设置为一个数组还有什么好处吗? 比如我可以拥有

 Public x As String Public y As String Public v As String Public w As String 

要么

 Public arr(1 to 4) As String arr(1) = x arr(2) = y arr(3) = v arr(4) = w 

就我需要做的代码而言,这两个版本在function上是等价的。 但是有没有理由使用一个而不是另一个呢?

连接到这个,我可以转置一个数组到Excel字段中,并使用xlUpxlDown来移动数组中的各个值。 但是,我也可以通过类似的方式在数组中移动数组,通过在“抽象地”保存的数组中查找具有特定值或位置的元素。*有时候,我们发现一旦将数组值转换为工作表,使用xlUpxlDown 。 除了必须有专门的工作表空间来做到这一点,这是比通过“抽象”*数组循环(如果Applications.ScreenUpdating = False )更糟糕(时间,处理能力,可靠性等)?

*这可能意味着一些技术的math家/严肃的程序员 – 我想说一个数组,不使用工作表网格的可视化显示。

编辑:

谢谢你的有趣答案。 我不确定我的问题的第二部分是否完全是第二个问题,因此我打破了论坛的一个规则,或者如果这个问题是关联的,但是我会很高兴地打勾也回答了这个问题。

正如其他人所指出的那样,不需要使用数组来表示不相关的variables,也不需要使用数组的一部分。 但是如果你发现自己在做这个事情:

 Dim email1 as String, email2 as String, email3 as String, _ email4 as String, email5 as String 

那么你应该考虑一个数组是否会是一个更好的方法。

对于你的问题的第二部分:如果你在VBA中使用数组,那么最好直接在内存中处理它们,而不是将它们转储到工作表中并从那里导航它们。

保持内存中的所有内容都将变得更快,并消除依赖性,例如必须确保有一个“临时”工作表:这种依赖性使得您的代码更less重用,更脆弱。

除非需要按顺序或通过索引#dynamic引用它们,否则不要将数组用作临时variables的分组。 阅读起来很难。

内存方面,他们应该是几乎相同的更多的开销arrays。