我知道TRIM功能的工作表函數和VBA函數返回不同的結果:等效VBA TRIM功能Excel中使用工作表函數
- 工作表函數從一個文本字符串的所有空間,除了與單個空格單詞
- 而VBA函數僅刪除前導和尾隨空格。
有沒有一種方法來模擬工作表函數的VBA行爲,而沒有自定義的VBA函數?
我知道TRIM功能的工作表函數和VBA函數返回不同的結果:等效VBA TRIM功能Excel中使用工作表函數
有沒有一種方法來模擬工作表函數的VBA行爲,而沒有自定義的VBA函數?
只使用工作表函數,你可以試試這個文本字符串在A1中:
=REPLACE(LEFT(A1,MATCH(2,1/(MID(A1,MMULT(ROW(INDIRECT("1:"&LEN(A1))),1),1)<>" "))),1,FIND(LEFT(TRIM(A1)),A1)-1,"")
查找不是空格的最後一個字符的位置不是str由於缺少字符串反向工作表函數而出現問題。
如果你不想使用VBA它更易於使用數據|分列與選項:
它也刪除前導和尾隨空格。
工作表函數從一個文本字符串的所有空格,除了單詞之間的單個空格
沒有這並不完全正確:)工作表TRIM
功能不會刪除不間斷空格字符(
)。要刪除不間斷空格字符,你有不同的函數調用CLEAN()
如果要使用工作表函數Trim
在VBA那麼你可以使用它像這樣
Application.WorksheetFunction.Trim(Range("A1").Value)
在Excel工作表,您可以使用=TRIM()
您可以在VBA中編寫一個可在工作表中引用的函數。
例如:
Public Function MyTrim(text As String) As String
MyTrim = Trim(text)
End Function
然後在工作表中,假設你要修剪的文本在單元格A1:
=MyTrim(A1)
+ 1簡單美麗:) –
非常感謝! regs,stex – stexcec
+1不錯哦!起初,我認爲MMULT是多餘的,但仔細檢查後,它不需要數組輸入。這是你的意圖嗎? –