我在VBA中填充了一个数组,并且不知道,它实际上是一个数组数组。所以我想要相当于PHP的var_dump()
函数。这么漂亮的工具(现在,在这里,我发现人们希望它等同于一堆语言。)
VBA Locals窗口让我深入到对象模型中,但我不能在我的数组中找到它。没有帮助。
我唯一知道的答案是设计For
循环并将每个单行结果发送给好的'单行立即窗口。我必须在每个方面明确声明数组。而var_dump()
是自我发现的 - 不需要任何东西,即时结果。
我知道我不会得到它,我知道我的问题的答案是"忘了它" (快乐修订版) ......但是有人发现了一些可以帮助VBA朝圣者的东西吗?
答案 0 :(得分:5)
您可以将数组添加到Watch
答案 1 :(得分:3)
这非常简单,但可能会让你开始:
Sub tester()
Debug.Print Dump(Array("a", "n", _
Array("1", Array("hello", "there"), _
5), 77, 88, 100))
End Sub
Function Dump(v, Optional level As Long = 0)
Dim i As Long, s As String
s = ""
If TypeName(v) Like "*()" Then
For i = LBound(v) To UBound(v)
If TypeName(v(i)) Like "*()" Then
s = s & Space(level * 4) & i & ": [Array]" & vbLf
s = s & Dump(v(i), level + 1)
Else
s = s & Space(level * 4) & i & ": " & v(i) & vbLf
End If
Next i
End If
Dump = s
End Function
编辑:如果您希望能够导出输出,@ Brad的Watch窗口建议可能是最简单的方法。