VBA 观察窗口允许您在逐行执行宏的过程中监视变量。有没有办法展开观察列表中包含的对象的所有属性,并通过搜索它们来查找特定文本?可以将观察列表中的单行复制到记事本或 Word 等应用程序中,但似乎没有办法导出整个观察列表的内容或一次性搜索所有行。
我正在尝试确定 Excel 电子表格上一个对象的具体属性。能够在观察列表中查找其中包含的文本将极大地加快我的搜索速度。
我正在尝试确定 Excel 电子表格上一个对象的具体属性。能够在观察列表中查找其中包含的文本将极大地加快我的搜索速度。
Debug.Print
输出其结果。由于语言和环境的限制,您只能搜索公共对象、类型和接口的公共成员。Option Explicit
Sub FindMember(target As Object, searchString As String)
Dim interface As TLI.InterfaceInfo
Dim member As MemberInfo
Set interface = TLI.InterfaceInfoFromObject(target)
For Each member In interface.Members
If InStr(1, member.Name, searchString, VbCompareMethod.vbTextCompare) > 0 Then
Debug.Print "Found in " & interface.Name & " member " & member.Name
End If
Next
End Sub
Public Sub Test()
Debug.Assert False
End Sub
然后我运行了Test子程序。当它在Debug.Assert False
行上暂停时,我在即时窗口中运行了我的FindMember
子程序,得到了下面的结果。(您不必调试活动代码即可使用此函数,它可以从普通代码或在没有运行任何内容时从即时窗口中使用。我只是为了确保它能够在暂停活动代码时使用)。
FindMember Application, "ang"
Found in _Application member Range
Found in _Application member MaxChange
Found in _Application member MaxChange
Found in _Application member UILanguage
Found in _Application member UILanguage
Found in _Application member LanguageSettings