将TRIM更改为TRIM(替代) - 宏

时间:2013-06-25 07:51:35

标签: excel vba

我有一个宏来修剪所有行中不必要的空格。然而,我想使用Trim(替代)功能而不是标准装饰 - 因为有时标准装饰功能对我不起作用。修剪和修剪(替代)之间的区别是

TRIM:

= TRIM(A2)

TRIM(替代物):

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

我尝试将修剪线中的代码更改为:

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

但不幸的是没有。有人可以帮我调整一下代码吗?

MY TRIM MACRO

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

3 个答案:

答案 0 :(得分:5)

我真的不知道,为什么你要使用SUBSTITUTE。如果要删除字符串中的所有空格,则可以尝试:

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

(旁注:不要使用“选择”。它只会减慢宏的速度,大部分时间都是不必要的)

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

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

我已经测试过它并且有效。

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

试试这个......

MyCell.Value=Trim(Application.WorksheetFunction.Substitute(MyCell.Value, Chr(160), Chr(32)))