我有一个宏可以修剪所有行中不必要的空格。但是,我想使用修剪(替代)功能而不是标准修剪 - 因为有时标准修剪功能对我不起作用。修剪和修剪(替代)之间的区别是
修剪:
=修剪(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
我真的不知道,出于什么原因你想使用替代品
。如果要擦除字符串中的所有空格,则可以尝试以下操作:
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)))