2016-07-05 47 views
1

我試圖讓動態地保持錯誤信息VBA數組和動態添加的信息錯誤給一個MsgBox

下面的代碼的作品,但不是動態的以任何方式排列:

Dim Errors(1 To 4) As String 

Errors(1) = "-Customer is blank on setup sheet" 
Errors(2) = "-From is blank on setup sheet" 
Errors(3) = "-Attention is blank on setup sheet" 
Errors(4) = "-Job Number is blank on setup sheet" 

For i = LBound(Errors) To UBound(Errors) 
    msg = msg & Errors(i) & vbNewLine 
Next i 
MsgBox vbNewLine & msg, , "Missing Info" 

怎麼能我給變量名分配一個變量?

我試圖做這樣的事情:

num = 0 
Dim Errors(1 To num) As String 

我躲在裏面,如果else語句我的錯誤,並要求我在循環結束時顯示錯誤。我無法使用Dim Errors(1 to num) As String,因爲出現錯誤提示「需要不斷的表達式」

回答

2

Alilland,你真是太親近了。你需要做的是使用ReDim而不是Dim。使用ReDim將允許您使用非常量值來定義數組的限制。因此,

num = 4 
ReDim Errors(1 To num) As String 
Errors(1) = "-Customer is blank on setup sheet" 
Errors(2) = "-From is blank on setup sheet" 
Errors(3) = "-Attention is blank on setup sheet" 
Errors(4) = "-Job Number is blank on setup sheet" 
For i = LBound(Errors) To UBound(Errors) 
    msg = msg & Errors(i) & vbNewLine 
Next i 
MsgBox vbNewLine & msg, , "Missing Info" 

應該爲你工作得很好。如果沒有,請讓我知道。

+0

不錯!謝謝我會檢查出 – aronlmin

+0

你的代碼工作,不幸的是它不適用於我的應用程序:( – aronlmin

+0

是我可以幫助你的東西嗎? –