[問題] Excel VBA建立多維陣列的問題

作者: homelife (SKY)   2019-02-24 00:48:49
軟體: Office 365 Excel
今天開始接觸VBA,嘗試了幾種方式建立多維陣列,最後查到了這種方式,
可以讓我一次用多行程式碼建立多維陣列,程式碼如下:
Dim myarray2 As Variant
myarray2 = _
Evaluate("{""AAA"",""BBB"",1,False,False;" & _
"""A"",""B"",1,True,False;" & _
"""A"",""B"",1,True,False;" & _
"""A"",""B"",1,True,False;" & _
"""A"",""B"",1,True,False;" & _
"""A"",""B"",1,True,False;" & _
"""A"",""B"",1,True,False;" & _
"""A"",""B"",1,True,False;" & _
"""A"",""B"",1,True,False;" & _
"""A"",""B"",1,True,False;" & _
"""d"",""e"",1,True,False}")
Debug.Print ("UBound(myarray2, 1)=" & UBound(myarray2, 1))
Debug.Print ("UBound(myarray2, 2)=" & UBound(myarray2, 2))
但是如此建立的多維陣列,裡面的字串(如"A","B")只要太長,後面Debut.Print
就會出問題。
會跳出視窗顯示"執行階段錯誤13,型態不符合"
我猜測可能是整個Evaluate內的字串超過VBA對字串長度的限制?
但是如果用
myarray(0,1)="ABC"
這種方式一行一行設定的話,設定完我要的整個陣列大概要破百行,
實在不想要讓程式碼這麼冗長。
請問有什麼方式可以讓我用可以換行的方式建立二維陣列,同時程式碼又不會太冗長呢?
非常感謝~
作者: soyoso (我是耀宗)   2019-02-24 09:58:00
是的evaluate內有255字數限制,以原來看字數為237,再加19個字數就會錯誤因此看是否將資料建立於儲存格內,再以myarray2 = 範圍的方式

Links booklink

Contact Us: admin [ a t ] ucptt.com