在vba词中查找单词后插入字符串
问题描述:
我需要帮助,我新的vba单词。在vba词中查找单词后插入字符串
我有形状对象的word文档。 我成功得到一个特定的形状,我需要用这条线编辑:
Dim c As Range
Set c = ActiveDocument.Shapes(1).TextFrame.TextRange
现在我想找到字符串和特定字符串后面添加行范围。
我该怎么做?
答
我知道如何添加文字来塑造,但我如何在不改变设计的情况下添加文字。 当我使用Darren Bartrup-Cook的代码时,回答它改变了形状对象的设计。
感谢, 塔尔
答
好吧,所以c
有一个参考你的形状。
您可以使用c.Text
获取形状中的文字。
VBA关键字Instr
返回一个字符串在另一个字符串中的起始位置。
因此,如果您有一个变量,其定义为sTextToFind
,其值为" DEF "
- 请注意两边的空格以便找到整个单词,另一个lPos
用于保存该字符串的数字位置。
lPos = InStr(c, sTextToFind)
将返回您的文本查找开始在您的字符串。
然后,您可以插入新的文本使用LEFT
和MID
到裂开现有文本现有的文字:c.Text = Left(c, lPos + Len(sTextToFind) - 1) & "my new text " & Mid(c, lPos + Len(sTextToFind))
所以,你的更新代码:
'Shape(1) holds "ABC DEF GHI JKL MNO"
Sub Test()
Dim c As Range
Dim lPos As Long
Dim sTextToFind As String
sTextToFind = " DEF "
Set c = ActiveDocument.Shapes(1).TextFrame.TextRange
lPos = InStr(c, sTextToFind) 'Returns position 4 (the space between C & D).
'Returns "ABC DEF my new text GHI JKL MNO"
c.Text = Left(c, lPos + Len(sTextToFind) - 1) & "my new text " & Mid(c, lPos + Len(sTextToFind))
End Sub
喜塔尔,不幸的是,这不是它的工作原理。你需要自己动手。如果你有一个去做,但仍然无法做到,那么你只需要更新你的问题,告诉我们你已经尝试了什么,我们将非常乐意提供帮助。 – CallumDA
我编辑我的问题。我希望它更清楚。 –