我需要用 Excel 電子表格中的文字替換大量數字。例如:
1 = hello
12 = goodbye
4 = cat
我可以使用標準搜尋和替換來完成此操作,但我有一個很大的清單需要處理(大約 240 個數字/單字組合),所以我想我會使用巨集。
我有這個:
Sub findreplacer()
For Each mycell In Range("A1:A1000")
mycell.Replace What:="1", Replacement:="hello"
mycell.Replace What:="12", Replacement:="goodbye"
mycell.Replace What:="4", Replacement:="cat"
Next
End Sub
但它取代了 12 中的 1,因此單元格讀取 hello2 而不是再見。我怎麼能讓它只影響只包含特定數字的單元格,就像「匹配整個單元格內容」的工作方式一樣?
任何幫助表示讚賞。
答案1
更改順序就可以,只要工作表中的每個值都將被替換即可。如果您的工作表包含 11,但不會被替換,那麼更改順序仍會將其替換為 hello1。
若要使用匹配整個儲存格指定
,LookAt:=xlWhole
作為 Replace 方法的另一個參數。 Replace 是 Range 上的有效方法,因此不需要 For 迴圈。您可以改為指定
Range("A1:A1000").Replace What:="12", Replacement:="goodbye", LookAt:=xlWhole
Range("A1:A1000").Replace What:="4", Replacement:="cat", LookAt:=xlWhole
答案2
我不確定是否有更好的解決方案,但在我看來,這就是將它們按相反的順序排列。例如:
Sub findreplacer()
For Each mycell In Range("A1:A1000")
mycell.Replace What:="12", Replacement:="goodbye"
mycell.Replace What:="4", Replacement:="cat"
mycell.Replace What:="1", Replacement:="hello"
Next
End Sub
在這種情況下,12 首先會被「goodbye」替換,當出現用「hello」替換 1 的行時,它就已經改變了。
同樣,可能有更好的解決方案,但我認為這可以快速修復您所描述的參數。