单词:插入自动文本形状,然后移动它

时间:2013-10-11 13:50:55

标签: vba ms-word

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

我的代码会插入自动文本,但我无法弄清楚如何移动它。

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

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

1 个答案:

答案 0 :(得分:0)

发现它! 插入标题后,我必须选择它,然后移动选择:

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

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