我正在编写一个宏来将包含预格式化表格的文本框插入到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
有办法做我想做的事吗?有人可以解释为什么这不能做我想做的事情吗? 谢谢!
答案 0 :(得分:0)
默认情况下,Word会定位到页面。您需要另外说明,然后重新设置Left
和Top
属性。插入TextBox后,指定相对水平和垂直位置。例如:
shpTbox.RelativeHorizontalPosition = wdRelativeHorizontalPositionColumn
shpTbox.RelativeVerticalPosition = wdRelativeVerticalPositionLine
shpTbox.Left = 72
shpTbox.Top = 50
您可能需要测试一些WdRelativeHorizontalPosition
和WdRelativeVerticalPostition
枚举值,以了解哪种方法最适合您的情况。