提问者:小点点

将修剪更改为修剪(替换) - 宏


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

修剪:

=修剪(A2)

修剪(替代):

=修剪(替代(A4,字符(160),字符(32)))

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

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

但不幸的是,它没有。谁能帮我调整代码使其工作?

我的修剪宏

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个答案

匿名用户

我真的不知道,出于什么原因你想使用替代品。如果要擦除字符串中的所有空格,则可以尝试以下操作:

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

(附带说明:不要使用“选择”。它只是减慢了宏的速度,并且大多数时候是不必要的)

编辑:现在我知道了,你的意思。如@KazJaw所述,您可以将其更改为:

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

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

匿名用户

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

匿名用户

试试这个.....

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