2015-06-16 80 views
0

標題解釋了我的問題。我工作的excelmakro和 我的問題是,是否有一個選項,調試器顯示所有元素,就像它與數組一樣?VBA調試器只顯示集合中的256個元素

如果沒有,是唯一的解決方法,我的類對象存儲在一個數組後充氣集合?

我感謝您的幫助。

回答

0

您可以使用debug.print並將輸出寫入即時窗口並繞過這種限制。

我幾乎可以肯定,沒有辦法增加這個限制,但也許別人可以給一個def。就此回答。

+1

我不認爲這是有可能改變這一限制。 VBE對象模型的搜索沒有顯示任何控制調試器的方法(儘管我可能錯過了某些東西)。字典似乎有相同的限制。 –

+0

你的例子正是我的意思。使用循環或下一個語句寫入直接窗口。再加上一個。 – rohrl77

+0

你給了我這個想法 - 但我認爲使輸出看起來與當地人窗口中看到的類似,這將是一個很好的調整 –

3

答案似乎是否定的 - 但下面的子可能會有所幫助。一個簡單的實驗表明,它可以在即時窗口在調試模式下同時使用:

Sub display(col As Collection) 
    Dim i As Long 
    Dim it As Variant 
    Dim itType As String 
    For i = 1 To col.Count 
     it = col.Item(i) 
     itType = TypeName(it) 
     Debug.Print "Item " & i & " -- Value: " & it & " -- Type: " & itType 
    Next i 
End Sub 
+0

添加了一個更新的子來覆蓋數組'Debug.Print「項目」&i &「 - 值:[」&Join(it,「,」)&「] - 類型:」&itType「@JohnColeman不打算竊取任何選票,如果您想改進您的答案以包含我的建議,感受免費這樣做,我會刪除我的回覆 – nkatsar

0

在我的情況下,集合的元素可以是數組。

約翰·科爾曼的子可以提高覆蓋(至少一維)陣列爲:

Sub display(col As Collection) 
    Dim i As Long 
    Dim it As Variant 
    Dim itType As String 
    For i = 1 To col.Count 
     it = col.item(i) 
     itType = TypeName(it) 
     If Not IsArray(it) Then 
      Debug.Print "Item " & i & " -- Value: " & it & " -- Type: " & itType 
     Else 
      Debug.Print "Item " & i & " -- Values: [" & Join(it, ", ") & "] -- Type: " & itType 
     End If 
    Next i 
End Sub