我有2個標題或標記是我的RTF文檔的一部分。在我的例子中,我顯示了一個句子,實際上它會是多個句子或段落。我使用了括號而不是小於和大於符號,因爲它們在我的問題中消失了。我想要做的就是用下面的句子「text goes here」替換2個標記之間的文本,而不用引號。刪除2個標題之間的所有文本Word 2010,使用VBA
[EmbeddedReport]大量文字,數千字的,多個段落[/ EmbeddedReport]
我想替換所有2個標記爲「文本到這裏」替代之間的文本。
它最終會變成這樣......
"[EmbeddedReport]text goes here[/EmbeddedReport]"
我硬是花了2天嘗試解決這個問題。任何幫助,將不勝感激。
這是我想的最後一件事...
Sub RemoveReport()
Dim c As Range
Dim StartWord As String, EndWord As String
Selection.HomeKey Unit:=wdStory
StartWord = "<ImageTable>"
EndWord = "</ImageTable>"
Set c = ActiveDocument.Content
c.Find.ClearFormatting
c.Find.Replacement.ClearFormatting
With c.Find
.Text = StartWord & "*" & EndWord
' MsgBox (.Text)
.Replacement.Text = "<ImageTable>text goes here</ImageTable>"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = True
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
c.Find.Execute
While c.Find.Found
Debug.Print c.Text
'~~> I am assuming that the start word and the end word will only
'~~> be in the start and end respectively and not in the middle
Debug.Print Replace(Replace(c.Text, StartWord, ""), EndWord, "")
c.Find.Execute
Wend
End Sub
有關您編寫的代碼問題的問題必須描述特定的問題 - 幷包含有效的代碼以進行重現。詢問代碼的問題必須證明對所解決問題的最小理解。包括嘗試解決方案,爲什麼他們沒有工作,以及預期的結果。 **我的解決方案**是使用[Find](http://msdn.microsoft.com/en-us/library/office/ff839118.aspx)對象與[MatchWildcards](http://msdn.microsoft .com/en-us/library/office/ff838695.aspx)屬性設置爲「True」。給它一個鏡頭,如果你無法弄清楚,我們可以提供幫助。 –
@David Zemens ...我是StackOverFlow.com的新手。抱歉給你帶來不便。我編輯並添加了代碼。它只是沒有做任何事情。我沒有從我在網上發現的類似問題中借用代碼。這不是他們嘗試過的唯一的方法,但是我嘗試過的其他方法也不成功。這段代碼看起來對我來說最合乎邏輯,但我肯定錯過了一些東西。 –
這段代碼與我的建議非常相似。給我一分鐘我會調整它。 –