最佳实践 - Excel中的变量VBA
我已经开始在一家新公司工作,在我之前的工作中,我写了很多 Excel VBA代码。在我以前的工作中,我几乎从未在分配它们之前声明变量。例外情况是,当我使用每个我常常声明x作为像这样一个变体通过数组循环:最佳实践 - Excel中的变量VBA
Sub sample()
Dim x As Variant
Dim myArray(1 To 100) As Variant
Range("A1").Select
For Each x In myArray
ActiveCell.Value = x
ActiveCell.Offset(1, 0).Select
Next x
End Sub
另一个例外通过工作表循环,并宣布WS为如下一个工作表时,我能想到的是:
Sub sample2()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
If ws.Tab.Color = 255 Then
ws.Delete
End If
Next ws
End Sub
但我的新公司声明所有的变量提前(甚至变量我在i循环)。有什么优势可以提前申报?我错过了什么吗?它似乎创造了更多的错误,而不是它的价值。
提前变量声明:
- 允许你指定类型
- 防止由于错误您随后拼错变量
第二点是数量级的最重要。请注意,您可以声明所有变量都需要在模块的顶部写入Option Explicit
来声明。
我理解你的观点,但不是在测试过程中补救的第二点? – mrbungle
可能。但世界上最好的初始测试者是*编译器*。 – Bathsheba
关于第2点,拼写错误很好,但调试更多的是不存储错误类型的变量。 – findwindow
由于很多原因,这是一件好事。 http://www.cpearson.com/excel/declaringvariables.aspx –
当你问他们这个问题时,你的雇主给你什么理由? – csmckelvey
我的老板刚才说这是因为这是他在大学里学到的。我总是发现VBA比我更好地确定类型。在一个代码块的情况下,产生了一个错误,因为一个变量被声明为一个整数并且该数字大于整数的限制并且需要是一个double。 –