【问题描述】如何遍历获取指定对象的所有属性名称及其参数列表呢?
单元格(Range)是最常用的Excel对象,如何遍历获取Range对象的所有属性名称及其参数列表呢?
【小千解答】借助TLBINF32.DLL库。
Step 01 引用DLL库
在VBA编辑窗口,依次单击【工具】→【引用】,勾选“TypeLib Infomation”,确定。
Step 02 编写VBA代码
示例代码如下:
Sub xqoffice() Dim xqCell As Range Dim xqIf As InterfaceInfo Dim xqMem As MemberInfo Dim xqPar As ParameterInfo Dim x As Integer Dim y As Integer Cells.ClearContents [A1].Value = "PropertyName" [B1].Value = "Parameters" Set xqCell = Range("A1") Set xqIf = TLI.InterfaceInfoFromObject(xqCell) x = 1 For Each xqMem In xqIf.Members If xqMem.InvokeKind = INVOKE_PROPERTYGET Then x = x + 1 Cells(x, 1).Value = xqMem.Name y = 1 For Each xqPar In xqMem.Parameters y = y + 1 Cells(x, y).Value = xqPar.Name Next xqPar End If Next xqMem Columns.AutoFit Set xqPar = Nothing Set xqMem = Nothing Set xqIf = Nothing End Sub
运行结果:
注解:如果在“引用”对话框列表找不到“TypeLib Infomation”,则先下载下方附件,解压拷贝至C:\Windows\SysWOW64路径下,再在“引用”对话框单击“浏览”按钮,选择它。
附件:TLBINF32.rar
【参考资料】