繁体   English   中英

Excel VBA变量使用:最好使用多个变量或一个数组来存储信息

[英]Excel VBA variable use: Is it better to use multiple variables or one array to store information

我已经使用VBA大约一个月了,这个论坛对于我的第一种“编程”语言来说是一个很好的资源。 随着我开始对VBA数组越来越熟悉,我开始想知道存储变量的最佳方法是什么,而且我敢肯定,这里的人知道可能是编程新手问题的答案:

是否有任何差异,比方说,具有10级之间String或彼此独立地使用的变量的阵列String使用彼此独立变量(由独立我的意思是它们在阵列中的位置并不重要它们在程序中使用)。 我使用一些代码,其中可能有大约9个公共变量。 尽管我不需要保留它们相对于彼此的顺序,但将它们设置为数组有什么好处吗? 例如我可以

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

就我需要处理的代码而言,这两个版本在功能上是等效的。 但是,有理由使用一个而不是另一个吗?

与此相关,我可以将数组转置为Excel字段,并使用xlUpxlDown在数组中的各个值之间移动。 但是我还可以通过类似的方式遍历数组,方法是在数组中“抽象地”查找具有特定值或位置的元素。*有时,我发现一旦将数组值转置到工作表中,使用xlUpxlDown 除了必须具有专用的工作表空间来执行此操作之外,这是否比在“抽象” *数组中循环(如果Applications.ScreenUpdating = False )还差(时间,处理能力,可靠性等)?

*这可能对数学家/认真的程序员来说是技术性的东西-我想说的是一个不使用工作表网格可视化显示的数组。

编辑:

感谢您的有趣回答。 我不确定我的问题的第二部分是否完全算作第二个问题,因此我违反了论坛规则,或者它是否已建立连接,但是我很高兴在也考虑了该问题的答案上打勾

除非您需要按顺序或通过索引号动态引用它们,否则请勿将数组用作暂存变量的分组。 很难阅读。

在内存方面,它们应该几乎相同,而阵列上的开销要稍微多一些。

正如其他人指出的那样,不需要为不相关或不属于“一组”值的变量使用数组。 但是,如果您发现自己这样做:

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

那么您应该考虑数组是否是更好的方法。

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

将所有内容保持在内存中的速度将更快,并消除了依赖性,例如必须确保周围有一个“从头开始”的工作表:此类依赖性使您的代码减少了可重用性,并且更加脆弱。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM