相当于VBA TRIM函数Excel和工作表函数

时间:2012-06-11 08:41:28

标签: excel vba excel-vba trim

我知道TRIM函数作为工作表函数和VBA函数返回不同的结果:

  • 工作表函数删除文本字符串中的所有空格,除了单词之间的单个空格
  • 而VBA函数只删除前导和尾随空格。

有一种方法可以使用工作表函数模拟VBA行为,没有自定义VBA函数吗?

3 个答案:

答案 0 :(得分:5)

仅使用工作表函数,您可以尝试使用A1中的文本字符串:

=REPLACE(LEFT(A1,MATCH(2,1/(MID(A1,MMULT(ROW(INDIRECT("1:"&LEN(A1))),1),1)<>" "))),1,FIND(LEFT(TRIM(A1)),A1)-1,"")

由于缺少字符串反向工作表函数,查找不是空格的最后一个字符的位置并不简单。

如果您不想使用VBA,使用选项 Data | Text to Columns 会更简单:

  1. 固定宽度
  2. 没有断行
  3. 目的地:B1
  4. 还会删除前导和尾随空格。

答案 1 :(得分:2)

  

工作表函数删除文本字符串中的所有空格,除了单词之间的单个空格

不,这不完全正确:)工作表TRIM函数不会删除不间断空格字符(&nbsp;)。要删除不间断空格字符,您将使用名为CLEAN()

的其他函数

如果您想在VBA中使用工作表函数Trim,那么您可以像这样使用它

Application.WorksheetFunction.Trim(Range("A1").Value)

在Excel工作表中,您可以使用=TRIM()

答案 2 :(得分:0)

您可以在VBA中编写一个可以在工作表中引用的函数。

例如:

Public Function MyTrim(text As String) As String    
    MyTrim = Trim(text)    
End Function

然后在您的工作表中,假设您要修剪的文本位于单元格A1中:

=MyTrim(A1)