我有一个宏来修剪所有行中不必要的空格。然而,我想使用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
答案 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)))