我有一个宏修剪所有行中不必要的空格.然而,我想使用Trim(替代)功能而不是标准装饰 - 因为有时标准装饰功能对我不起作用.修剪和修剪(替代)之间的区别是
修剪:
TRIM =(A2)
TRIM(替补):
= TRIM(SUBSTITUTE(A4,CHAR(160),CHAR(32)))
我试图将修剪线中的代码更改为:
MyCell.Value = Trim(SUBSTITUTE(MyCell.Value,CHAR(160),CHAR(32)))
Run Code Online (Sandbox Code Playgroud)
但遗憾的是它没有.有谁可以帮我调整代码使其工作?
我的微调
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
Run Code Online (Sandbox Code Playgroud)
我真的不知道,你想用什么原因SUBSTITUTE.如果要删除字符串中的所有空格,则可以尝试以下操作:
MyCell.Value = Replace(MyCell.Value, " ", vbNullString)
Run Code Online (Sandbox Code Playgroud)
(另请注意:不要使用"选择".它只会减慢宏的速度,大部分时间都是不必要的)
编辑:现在我知道,你的意思.正如@KazJaw所说,你可以改为:
MyCell.Value = Trim(Replace(MyCell.Value, Chr(160), Chr(32)))
Run Code Online (Sandbox Code Playgroud)
我已经测试了它并且它有效.