2016-11-22 32 views
1

我不完全知道爲什麼我收到的我可以使用變量重新排列數組嗎?

錯誤消息期待一個動態數組變種

與此代碼:

Option Explicit 

Sub ArrayTest() 
    Dim i As Integer, BankList(0) As Variant, x As Integer 
    For i = 0 To UBound(ScreenArray) 
     If ScreenArray(i) Like "TR=SUB*" Then 
      Debug.Print ScreenArray(i) 
      ReDim Preserve BankList(x) '<<< ERROR LINE 
      BankList(x) = ScreenArray(i) 
      x = x + 1 'Raise the value for the next occurrence, if needed. 
     End If 
    Next 
End Sub 

基本上我試圖特定移動如果滿足某些條件,則從一個數組到一個新數組的字符串。在運行此For...Next語句之前,很難確定新陣列中有多少個字符串。

如果您不能從代碼中知道,原始數組爲ScreenArray,新陣列爲BankList

+0

不要這樣做。你應該使用'List(Of T)' – SLaks

+0

@ YowE3K哇我真不敢相信那很簡單。謝謝! –

+1

我不應該這麼快刪除我的評論! (我開始懷疑自己是否正確,因此在檢查時擺脫了它,顯然我是對的。) – YowE3K

回答

5

要創建動態數組,請不要在原始聲明中指定大小。因此使用BankList() As Variant而不是BankList(0) As Variant

相關問題