Excel VBA调试器仅显示集合的256个元素

Excel VBA调试器仅显示集合的256个元素,excel,debugging,collections,vba,Excel,Debugging,Collections,Vba,标题解释了我的问题。我在一家excelmakro和 我的问题是,是否有一个选项可以让调试器像显示数组一样显示所有元素 如果不是,那么在扩大集合后,是否只有一种方法可以解决我的类对象在数组中的存储问题 非常感谢您的帮助。您可以使用debug.print并将输出写入即时窗口,从而绕过限制 我几乎可以肯定,没有办法提高这一限制,但也许其他人可以给出一个def。回答这个问题。答案似乎是否定的——但下面的小节可能会有所帮助。一个简单的实验表明,它可以在调试模式下的即时窗口中使用: Sub display(

标题解释了我的问题。我在一家excelmakro和 我的问题是,是否有一个选项可以让调试器像显示数组一样显示所有元素

如果不是,那么在扩大集合后,是否只有一种方法可以解决我的类对象在数组中的存储问题


非常感谢您的帮助。

您可以使用
debug.print
并将输出写入即时窗口,从而绕过限制


我几乎可以肯定,没有办法提高这一限制,但也许其他人可以给出一个def。回答这个问题。

答案似乎是否定的——但下面的小节可能会有所帮助。一个简单的实验表明,它可以在调试模式下的即时窗口中使用:

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

在我的例子中,集合的元素可以是数组

John Coleman的sub可以改进,以覆盖(至少一维)阵列,如下所示:

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

我认为不可能改变这个限制。对VBE对象模型的搜索没有显示任何控制调试器的方法(尽管我可能遗漏了一些东西)。字典似乎也有同样的限制。你的例子正是我的意思。使用循环或for next语句写入即时窗口。加上一个。你给了我这个想法——但我认为让输出看起来尽可能类似于你在本地窗口中看到的内容是一个很好的调整。注意,
debug.print
prints的即时窗口也有行数限制,即200行。它将循环使用超出此范围的管线(将其推出)。因此,它甚至比256更糟糕。您可以将行包装为每行有多个项目,从而增加限制。但原则上你是对的!很好地指出了它添加了一个更新的子项来覆盖数组
Debug.Print“Item”&i&“--Values:[”&Join(it),“,”&“]--Type:“&itType
@JohnColeman无意窃取任何选票,如果您希望改进您的答案以包括我的建议,请随意这样做,我将删除我的回复请注意,
debug.print
打印的即时窗口也有行数限制,即200行。它将循环使用超出此范围的管线(将其推出)。因此它甚至比256更糟糕。请注意,
debug.print
打印到的即时窗口也有行数限制,即200行。它将循环使用超出此范围的管线(将其推出)。所以它甚至比256更糟糕。