2015-04-28 49 views
0

我可以以某種方式循環所有這些事情,以便它不會佔用太多空間並解決程序。我可以循環VBA中的數組元素

我有600左右,這種類型的MYarray元素。建議我一些東西。 我如何循環所有這些東西。

我試過循環中使用for循環和if語句。但不成功

Myarray(1) = Sheets("DealComparison").Cells(2, 1) 
    Myarray(2) = Sheets("DealComparison").Cells(3, 1) 
    Myarray(3) = Sheets("DealComparison").Cells(4, 1) 
    Myarray(4) = Sheets("DealComparison").Cells(5, 1) 
    .. 
    .. 
    Myarray(600)=Sheets("DealComparison").Cells(601, 1) 

使迴路將自動繼續,直到沒有價值。

請幫我解決這個問題,因爲我是vba新手。

我不太確定,我想我們需要一個for循環和一個If循環。不太確定。請幫我做這個 感謝

+0

你可以把範圍爲2維數組中的一行代碼而不是循環。 –

回答

2

你可以使用類似代碼:

Sub dural() 
    Dim I As Long 
    Dim Myarray(1 To 4) As Variant 

    For I = 1 To 4 
     Myarray(I) = Sheets("DealComparison").Cells(I + 1, 1) 
    Next I 
End Sub 

選擇自己的上限。

編輯#1:

如果你想在代碼挑上限,那麼:

Sub dural() 
    Dim I As Long, N As Long 
    N = Sheets("DealComparison").Cells(Rows.Count, 1).End(xlUp).Row - 1 
    Dim Myarray() 
    ReDim Myarray(1 To N) 

    For I = 1 To N 
     Myarray(I) = Sheets("DealComparison").Cells(I + 1, 1) 
    Next I 
End Sub 
+0

你只是打敗了我。但是我會使用'I = Ubound(Myarray)' – Tom

相關問題