将TRIM更改为TRIM(替代) – macros

我有一个macros,修剪所有行中不必要的空格。 但是,而不是标准修剪,我想使用修剪(替代)function – 因为有时标准修剪function不适合我。 修剪和修剪(替代)之间的区别是

修剪:

TRIM =(A2)

TRIM(替补):

= TRIM(SUBSTITUTE(A4,CHAR(160),CHAR(32)))

我试图将修剪行中的代码更改为:

MyCell.Value = Trim(SUBSTITUTE(MyCell.Value,CHAR(160),CHAR(32))) 

但不幸的是没有。 任何人都可以请帮我调整代码,使其工作?

我的微观macros

 Sub GOOD_CT_TrimBText() Cells.Select Dim MyCell As Range On Error Resume Next Selection.Cells.SpecialCells(xlCellTypeConstants, 23).Select For Each MyCell In Selection.Cells MyCell.Value = Trim(MyCell.Value) Next On Error GoTo 0 End Sub 

我不知道,你为什么要使用SUBSTITUTE 。 如果你想擦除string中的所有空格,那么你可以试试这个:

 MyCell.Value = Replace(MyCell.Value, " ", vbNullString) 

(注意:不要使用“Select”,它只会减慢macros观的速度,在大多数情况下是不必要的)

编辑:现在我知道,你的意思。 正如@KazJaw所说,你可以改变它:

 MyCell.Value = Trim(Replace(MyCell.Value, Chr(160), Chr(32))) 

我已经testing过它,它工作。

 TRIM(SUBSTITUTE(I8,CHAR(160),CHAR(32)))*1