0

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

修剪:

=修剪(A2)

修剪(替代):

=修剪(替代(A4,CHAR(160),CHAR(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
4

3 回答 3

5

我真的不知道,你为什么要使用SUBSTITUTE. 如果你想删除字符串中的所有空格,那么你可以试试这个:

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

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

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

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

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

于 2013-06-25T08:07:11.510 回答
0
TRIM(SUBSTITUTE(I8,CHAR(160),CHAR(32)))*1 
于 2014-03-13T04:09:26.397 回答
-1

试试这个......

MyCell.Value=Trim(Application.WorksheetFunction.Substitute(MyCell.Value, Chr(160), Chr(32)))
于 2018-04-17T13:27:48.693 回答