簡單地說,我有一個單元格,其公式如下
=IF(A4="Name"/span>, IFERROR(J4*(I4-AI4), 0), "" )
我試圖用 "BH4 "替換 "I4",而不把 "AI4 "也變成 "ABH4"。 但是我們不能假設公式總是遵循這個模式(所以并不是真正的選擇,只是找到并替換字串的第一次出現或類似的東西
。我已經研究了Replace和Substitute函式,但它們似乎不能處理通配符。 我還嘗試使用Range.Replace方法,我認為它應該能夠處理通配符,但我無法真正讓它發揮作用。 但即使如此,我也不確定什么樣的通配符設定會有效
。uj5u.com熱心網友回復:
假設公式在單元格B9。
這將只改變子串的第一個出現的地方:
Sub FixFormula()
With Range("B9"/span>)
.Formula = Application.Substitute(.Formula, "I4"/span>, "BH4"/span>, 1)
結束 與
結束 子
uj5u.com熱心網友回復:
我認為你需要使用一個類似這樣的重碼:
Sub regex()
Set myRegExp = New RegExp
myRegExp.Pattern = "([^a-zA-Z])I4([^a-zA-Z])"/span>
With Range("A1"/span>)
.公式 = myRegExp.Replace(.Formula, "$1AB4$2")
結束 與
結束 Sub
注意,你必須先在VBA螢屏中進入工具|參考文獻,并啟用微軟VBScript正則運算式5.5.
。轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/307757.html
標籤:
上一篇:我想知道為什么我會得到這個錯誤?
下一篇:淺析丨物體交易如何上鏈?
