如何编辑从构建块插入的文本框中的文本?



我试图从一个for循环(Word)的构建块插入文本框。我已经采取了一个代码片段,它试图创建三个文本框的文本"附录a "-附录C"

我找不到一种方法来选择在循环迭代中添加的文本框。

Dim objTextBox As Object
Dim i As Integer
For i = 65 To 67
Set objTextBox = Application.Templates( _ 
ActiveDocument.AttachedTemplate.Path & "" & ActiveDocument.Name _ 
).BuildingBlockEntries("Appendix Text Box") 
With objTextBox
.Insert Where:=Selection.Range _
, RichText:=True
End With
ActiveDocument.Shapes.Range(Array("Text Box 2")).Select ' Selects the wrong text box.
Selection.TypeText Text:="Appendix " & Chr(i)
Next

我试过从objTextBox编辑文本,以及使用TextFrame,但我不确定这是否可能。

objTextBox.TextFrame.TextRange.Text = "Appendix " & Chr(i)

它可以帮助您查找文档中不理解的对象、方法或属性。您可以通过按F1直接从VBE访问它。或者,您可以按F2键来显示对象浏览器,它将显示对象的事件、方法和属性。

BuildingBlock.Insert方法返回一个Range对象,它表示插入到文档中的构建块的内容。从那里你可以访问ShapeRange,但是你不能使用形状名称作为id,因为它对于你插入的每个文本框都是不同的。

Dim bBlock As BuildingBlock
Dim i As Integer
Dim tbRange As Range
For i = 65 To 67
Set bBlock = ActiveDocument.AttachedTemplate.BuildingBlockEntries("Appendix Text Box")
Set tbRange = bBlock.Insert(Where:=Selection.Range, RichText:=True)
tbRange.ShapeRange(1).TextFrame.TextRange.Text = "Appendix " & Chr(i)
Next

最新更新