-1
我不知道是什麼原因造成的問題。我的目標非常簡單 - 我想用增量數字替換一些文本「abc.XXXX」,以便將其轉換爲「abc.0001」,「abc.0002」,「abc.0003」等等。會發生的是,對於一些文檔,腳本會一直運行而不會替換任何東西(至少不會顯示),也不會給出錯誤。搜索並替換問題無限循環
這裏是我當前的代碼
With ActiveDocument.Content
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.text = ABC_123.XXXX
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchWildcards = False
.Execute Replace:=wdReplaceOne
End With
While .Find.Found = True
count = count + 1
lastReqNr = lastReqNr + 1
.text = ABC_123. & Right(String(4, "0") & lastReqNr, 4)
.Collapse wdCollapseEnd
.Find.Execute Replace:=wdReplaceOne
Wend
End With
對於一些文件的代碼工作完全正常,但有些文件是造成問題。每種情況下都正確填寫變量。原因可能是我正在進行修改跟蹤嗎?
有沒有什麼建議可以提供它運行到無限循環狀況的一例的方式?另外,'S_FIND'究竟等於什麼? – SalvadorVayshun
嘿,當然。 'S_FIND'等於例如「ABC_123.XXXX」和無限循環似乎出現以防文本類似於:'ABC_123.XXXX \ n(原:ABC_003.004)'。我認爲一個infinte循環不應該發生,因爲替換用ABC_123.0001覆蓋當前值,這與ABC_123.XXXX不再匹配 – Erik
當循環發生時,我試圖更詳細地找出它:每當段落是正確的在文本後面取代。然後用'ABC_123.0001ABC_123.0002ABC_123.0003 ...'替換ABC_123.XXXX',等等。任何人都知道爲什麼段落/換行符會導致這種行爲? – Erik