最佳实践 - 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循环)。有什么优势可以提前申报?我错过了什么吗?它似乎创造了更多的错误,而不是它的价值。

+1

由于很多原因,这是一件好事。 http://www.cpearson.com/excel/declaringvariables.aspx –

+1

当你问他们这个问题时,你的雇主给你什么理由? – csmckelvey

+0

我的老板刚才说这是因为这是他在大学里学到的。我总是发现VBA比我更好地确定类型。在一个代码块的情况下,产生了一个错误,因为一个变量被声明为一个整数并且该数字大于整数的限制并且需要是一个double。 –

提前变量声明:

  1. 允许你指定类型
  2. 防止由于错误您随后拼错变量

第二点是数量级的最重要。请注意,您可以声明所有变量都需要在模块的顶部写入Option Explicit来声明。

+0

我理解你的观点,但不是在测试过程中补救的第二点? – mrbungle

+1

可能。但世界上最好的初始测试者是*编译器*。 – Bathsheba

+0

关于第2点,拼写错误很好,但调试更多的是不存储错误类型的变量。 – findwindow