2
」標記爲「查找並替換」我嘗試突出顯示RegEx找到的單詞,並且如果有權將其替換爲其相應的替代項。在Microsoft Word中用「RegEx
該代碼只有在未被替換時才能正常工作。
大概應該每次重新排列?
Sub Replace()
Dim regExp As Object
Set regExp = CreateObject("vbscript.regexp")
Dim arr As Variant
Dim arrzam As Variant
Dim i As Long
Dim choice As Integer
Dim Document As Word.Range
Set Document = ActiveDocument.Content
On Error Resume Next
'EGN
'IBAN
arr = VBA.Array("((EGN(:{0,1})){0,1})[0-9]{10}", _
"[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[0-9]{7}([a-zA-Z0-9]?){0,16}")
arrzam = VBA.Array("[****]", _
"[IBAN]")
With regExp
For i = 0 To UBound(arr)
.Pattern = arr(i)
.Global = True
For Each Match In regExp.Execute(Document)
ActiveDocument.Range(Match.FirstIndex, Match.FirstIndex + Match.Length).Duplicate.Select
choice = MsgBox("Replace " & Chr(34) & Match.Value & Chr(34) & " with " & Chr(34) & arrzam(i) & Chr(34) & "?", _
vbYesNoCancel + vbDefaultButton1, "Replace")
If choice = vbYes Then
Document = .Replace(Document, arrzam(i))
ElseIf choice = vbCancel Then
Next
End If
Next
Next
End With
End Sub
「所以每個連續的比賽看着一箇舊的位置」 - 是的。那就是爲什麼我認爲每次都需要重新安置。但是不能確切地說, –
「所以每一個連續的比賽都會看到一箇舊的位置」 - 是的。那就是爲什麼我認爲每次都需要重新安置。但不是很舒服。 「你一次替換所有的事件」 - 這不是主意。我想在更換之前檢查單詞。就像在常規文檔上查找和替換一樣。它重新編碼全部是沒有問題的。如果你有想法,我會接受。 –
這段代碼的思想是:「通過正則表達式模式找到文本中的文本,其中有10個文本,然後逐個更改找到的單詞,並詢問是,否,取消。是 - 根據與相關的模式進行替換。 - 轉到下一個找到的單詞。取消 - 退出搜索。「 –