我需要幫助,我新的vba單詞。在vba詞中查找單詞後插入字符串
我有形狀對象的word文檔。 我成功得到一個特定的形狀,我需要用這條線編輯:
Dim c As Range
Set c = ActiveDocument.Shapes(1).TextFrame.TextRange
現在我想找到字符串和特定字符串後面添加行範圍。
我該怎麼做?
我需要幫助,我新的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
我編輯我的問題。我希望它更清楚。 –