2016-04-29 60 views
0

我已經開始在一家新公司工作,在我之前的工作中,我寫了很多 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。 –

回答

2

提前變量聲明:

  1. 允許你指定類型
  2. 防止由於錯誤您隨後拼錯變量

第二點是數量級的最重要。請注意,您可以聲明所有變量都需要在模塊的頂部寫入Option Explicit來聲明。

+0

我理解你的觀點,但不是在測試過程中補救的第二點? – mrbungle

+1

可能。但世界上最好的初始測試者是*編譯器*。 – Bathsheba

+0

關於第2點,拼寫錯誤很好,但調試更多的是不存儲錯誤類型的變量。 – findwindow