Selection.Range没有在光标位置插入我的文本框

时间:2018-03-20 17:10:38

标签: vba word-vba

我正在编写一个宏来将包含预格式化表格的文本框插入到Microsoft Word文档中,我希望它将表格插入当前光标位置。使用我当前的代码,文本框似乎插入当前页面的开头或结尾,而不是光标位置。

这是我的代码:

Sub InsertTable()
    Dim shpTbox As Shape
    Dim rngTbox As Range
    Dim tblBox As Table
    Set shpTbox = ActiveDocument.Shapes.addtextbox( _
        Orientation:=msoTextOrientationHorizontal, _
        Left:=72, Top:=50, Width:=468, Height:=220, Anchor:=Selection.Range)
    shpTbox.TextFrame.TextRange.Tables.Add Range:=shpTbox.TextFrame.TextRange, NumRows:=8, NumColumns:=4, _
        DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed
    shpTbox.TextFrame.TextRange.Tables.Item(1).Select
    shpTbox.TextFrame.TextRange.Tables(1).Style = ActiveDocument.Styles("Custom Table")
    Selection.InsertCaption Label:="Figure", _
        Title:=". Insert Caption Here", _
        Position:=wdCaptionPositionBelow
    shpTbox.Line.Visible = msoFalse
    shpTbox.WrapFormat.Type = wdWrapSquare
    shpTbox.WrapFormat.Side = wdWrapBoth
    shpTbox.TextFrame.TextRange.ParagraphFormat.Alignment = wdAlignParagraphCenter
End Sub

有办法做我想做的事吗?有人可以解释为什么这不能做我想做的事情吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

默认情况下,Word会定位到页面。您需要另外说明,然后重新设置LeftTop属性。插入TextBox后,指定相对水平和垂直位置。例如:

shpTbox.RelativeHorizontalPosition = wdRelativeHorizontalPositionColumn
shpTbox.RelativeVerticalPosition = wdRelativeVerticalPositionLine
shpTbox.Left = 72
shpTbox.Top = 50

您可能需要测试一些WdRelativeHorizontalPositionWdRelativeVerticalPostition枚举值,以了解哪种方法最适合您的情况。