MS自Word 2010以来向MS Word引入的一项新功能是LayoutColumns FootnoteOptions。
因此,以下代码行在Word 2016中编译:{{1}}但不在Word 2010中(我未在Word 2013中测试过)。
条件编译器语句似乎没有帮助......除了包含Word 2010的VBA7之外,应用程序版本没有任何内容。
https://msdn.microsoft.com/VBA/Language-Reference-VBA/articles/compiler-constants
所以这不会在Word 2010中编译:
ActiveDocument.Range.FootnoteOptions.LayoutColumns
答案 0 :(得分:5)
编译器指令不会对您有所帮助。您需要确定版本,并对旧版Word中的成员调用使用后期绑定。
Sub testWd10()
If Application.Version > 15 Then 'e.g. 15 is Word 2013, change as necessary
Dim myRange As Object 'As Range
Set myRange = ActiveDocument.Range
myRange.FootnoteOptions.LayoutColumns 'Late-bound call
End If
End Sub
答案 1 :(得分:3)
我有点晚了,但是后期绑定替代方案还有一些:
Dim o As Object
Set o = ActiveDocument.Range.FootnoteOptions
On Error Resume Next
o.LayoutColumns = 3
On Error GoTo 0
有点短而慢:
On Error Resume Next
CallByName ActiveDocument.Range.FootnoteOptions, "LayoutColumns", vbSet, 3
On Error GoTo 0
或:
On Error Resume Next
CVar(ActiveDocument.Range.FootnoteOptions).LayoutColumns = 3
On Error GoTo 0
答案 2 :(得分:0)
不如ThunderFrame的答案好,因为我认为将范围设置为对象可能比整个应用程序更有效,但是这里有:
Sub testWd10()
Dim wdApp As Object
Set wdApp = Application
If wdApp.Version > 14 Then
wdApp.Documents(ActiveDocument.FullName).Range.FootnoteOptions.LayoutColumns
End If
End Sub