【发布时间】:2017-08-23 13:09:59
【问题描述】:
我一直坚持一些我无法理解的事情(但我知道这可能很简单)。我尝试了一些通用例程来收集典型单词对象的属性,例如表格、文本框、范围等。想法如下:
Sub GetWobjectAttributes(ByRef WObject As Object)
If TypeOf WObject Is Word.Table Then
'grab table attributes
ElseIf TypeOf WObject Is Word.Range Then
'grab range attributes
...
End If
End Sub
不幸的是,使用泛型对象类型传递对象似乎改变了传递对象的类型。例如执行子测试:
Sub test()
GetWobjectAttributes (ThisDocument.Tables(1))
'MsgBox (TypeName(ThisDocument.Range.Tables(1)))
End Sub
Public Sub GetWobjectAttributes(ByRef WObject As Variant)
MsgBox (TypeName(WObject))
End Sub
显示信息:
Range 而不是“Table”(但执行 MsgBox (TypeName(ThisDocument.Range.Tables(1))) 直接在测试子中(示例中注释)显示:Table。
任何想法如何在不改变类型的情况下将未知类型的对象传递给子例程?
【问题讨论】: