我的目标是用文本框替换ms word文档中的某个文本。此文本框需要包含替换的文本。文本框应出现在与替换文本相同的位置,并且以下内容必须环绕文本框。
使用以下代码,我可以使用文本框和文本框中的替换文本替换文本,但文本框始终位于同一位置。
我现在需要的是,可以获取已找到文本的位置以将其用于文本框以替换找到的文本。 :)
我的代码段:
positionLeft = 50 /* here I need the left position of the found text */
positionTop = 50 /* and here the top position */
With ActiveDocument.Range.find
.Forward = True
.Wrap = wdFindStop
.Text = TextToReplace
.Execute
If .Found = True Then
Dim Box As Shape
Set Box = ActiveDocument.Shapes.AddTextbox(msoTextOrientationHorizontal, positionToLeft, positionToRight, 100, 100)
Box.TextFrame.textRange.Text = TextToReplace
.Parent = ""
End If
End With
甚至可以获得word文档中文本的绝对左侧和顶部位置?如果是的话,我怎么能这样做呢?
答案 0 :(得分:0)
您可以使用Selection.Information(wdVerticalPositionRelativeToPage),Selection.Information(wdHorizontalPositionRelativeToPage)来查找坐标,但它只是相对于该页面。
我没有测试过这个,但是如果你添加
.Select
x = Selection.Information(wdVerticalPositionRelativeToPage)
y = Selection.Information(wdHorizontalPositionRelativeToPage)
Set Box = ActiveDocument.Shapes.AddTextbox(msoTextOrientationHorizontal,x, y, 100, 100)
它应该有用。