0

我正在尝试将自动文本项插入标题中,然后仅当自动文本项位于偶数页上时才移动它,该页也是部分中的第一页。

我的代码将插入自动文本,但我不知道如何移动它。

Sub InsertHeader()
Dim oShape As Shape
Dim PageNumber As Integer
Dim oSection As Section
Dim oHeader As HeaderFooter
For Each oSection In ActiveDocument.Sections
    If oSection.Index > 1 Then

    For Each oHeader In oSection.Headers
        oHeader.Range.Select
        PageNumber = Selection.Information(wdActiveEndPageNumber)
        If oHeader.Exists Then
            Select Case oHeader.Index
            Case Is = wdHeaderFooterFirstPage
                If PageNumber Mod 2 = 0 Then
                    ActiveDocument.AttachedTemplate.AutoTextEntries("HeaderFirst"). _
Insert Where:=Selection.Range

                End If
            End Select
        End If
    Next oHeader
    End If
Next oSection
End Sub

我试过把,Insert Where:=Selection.Range Left:=CentimetersToPoints(2.26)但 VBA 编辑器不会接受。我还尝试在标题中找到所有形状并移动它们:

                ActiveDocument.AttachedTemplate.AutoTextEntries("HeaderFirst"). _
    Insert Where:=Selection.Range
                    For Each oShape In oHeader.Shapes
                        oShape.Left = CentimetersToPoints(2.26)
                        ''oHeader.Range.Shape(1).Left = CentimetersToPoints(1)
                    Next oShape

但这会移动文档中每个标题中的形状,而不仅仅是我插入的形状。

4

1 回答 1

0

找到了!插入标题后,我必须选择它,然后移动选择:

oHeader.Range.Select
Selection.Range.ShapeRange.Left = CentimetersToPoints(2.26)

此外,在插入任何内容之前,我需要确保标题存在。我通过让生成 Word 文件(Author-it)的程序插入一个临时标题来解决这个问题。

于 2013-10-11T15:40:42.213 回答