2015-11-03 68 views
1

我在VBA中有兩個可變元素的'For循環'。一個是數字,一個是單詞。試想一下,最終輸出看起來是這樣的:如何通過單詞列表增加?

Result[1].Apple 
Result[1].Orange 
Result[1].Banana 

Result[2].Apple 
Result[2].Orange 
Result[2].Banana 

對於12,在我的功能我用的開頭:i = 1 to 2。在我的功能結束時,我使用:Next i

Sub Button1_Click() 
For i = 0 To 5 
'want to cycle through .apple, .orange, .banana after going through i values. presumably calling this variable Fruit 

MyConcatenatedString = "Result[" & i & "]." & Fruit 


If TypeName(Data) = "Error" Then 
If MsgBox("Error reading "Result[" & i & "]." & Fruit & _ 
"Continue with read?", vbYesNo + vbExclamation, _ 
"Error") = vbNo Then Exit For 
Else 
'no error, put data in excel cell 
End If 

'send data to cell and increment i 
Cells(4, 2 + i) = MyConcatenatedString 

Next i 

End Sub 

我怎樣才能讓使用i通過12通過AppleOrangeBanana我喜歡我的週期循環的功能?

+0

加入您的代碼,以便我們可以使用它並幫助您完成它! ;)但是你可以使用array('Dim A():Redim A(2)')來定義第二個變量元素('A(0)=「Apple」:A(1)=「Orange」:.. ..')並循環使用'對於k = LBound(A)到UBound(A)'! ;) – R3uK

+0

更新了代碼:-) – karhu

回答

1

你可以使用一個數組來定義第二可變元素:

Dim A() : Redim A(2)) 
A(0)="Apple" : A(1)="Orange" : .... 

,並循環使用For k = LBound(A) to UBound(A)

所以這應該是這樣的結尾:

Sub test_Karhu() 

Dim TpStr As String 
Dim A(): ReDim A(2) 
A(0) = "Apple": A(1) = "Orange": A(2) = "Banana" 

For i = 1 To 2 
    For k = LBound(A) To UBound(A) 
     TpStr = TpStr & "Result[" & i & "]." & A(k) & vbCrLf 
    Next k 
Next i 
MsgBox TpStr 

End Sub 
+0

工程就像一個魅力。謝謝您的幫助! – karhu