VBA TRIMfunction等同于Excel和工作表function
我知道TRIM函数作为工作表函数和VBA函数返回不同的结果:
- 工作表函数删除文本string之间的单个空格之外的所有空格
- 而VBA函数仅删除前导和尾随空格。
有没有一种方法来模拟与工作表函数的VBA行为,没有一个自定义的VBA函数?
只使用工作表函数,您可以在A1中为文本string尝试:
=REPLACE(LEFT(A1,MATCH(2,1/(MID(A1,MMULT(ROW(INDIRECT("1:"&LEN(A1))),1),1)<>" "))),1,FIND(LEFT(TRIM(A1)),A1)-1,"")
由于缺lessstring反转工作表函数,查找不是空格的最后一个字符的位置并不简单。
如果您不想使用VBA,则使用“ 数据”|“文本到列 ”选项可以更简单:
- 固定宽度
- 没有断线
- 目的地:B1
这也消除了前导和尾随空间。
工作表函数删除文本string之间的单个空格之外的所有空格
不,这不完全正确:)工作表TRIM
function不会删除不间断的空格字符(
)。 要删除不间断的空格字符,您有一个不同的函数称为CLEAN()
如果你想在VBA中使用Worksheet Function Trim
,那么你可以像这样使用它
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)