我有一个宏来修剪当前所选列中的所有单元格,当我在普通文本,名称,邮政编码等上使用它时它工作正常,但是当它用于修剪电子邮件地址列时,它不会删除尾随空格。
'这需要修剪'变成'这需要修剪'但是 'thisneeds@trimming.to'保留为'thisneeds@trimming.to'。
这是宏,
Dim mycell
mycell = ActiveCell.Address
ActiveCell.EntireColumn.Select
response = MsgBox("Are you sure you want to trim column " & Split(mycell, "$")(1) & "?", vbYesNo)
If response = vbNo Then
Exit Sub
End If
Dim arrData() As Variant
Dim arrReturnData() As Variant
Dim rng As Excel.Range
Dim lRows As Long
Dim lCols As Long
Dim i As Long, j As Long
lRows = Selection.Rows.Count
lCols = Selection.Columns.Count
ReDim arrData(1 To lRows, 1 To lCols)
ReDim arrReturnData(1 To lRows, 1 To lCols)
Set rng = Selection
arrData = rng.Value
For j = 1 To lCols
For i = 1 To lRows
arrReturnData(i, j) = Trim(arrData(i, j))
Next i
Next j
rng.Value = arrReturnData
Set rng = Nothing
Range(mycell).Select
我无法理解为什么它适用于每一列但不适用于电子邮件地址。
答案 0 :(得分:0)
你可以不用重新发明轮子就可以了。
请使用此功能作为示例代码继续。
Public Function TrimStr(inputStr As String) As String
TrimStr = WorksheetFunction.Trim(inputStr)
End Function
我已经尝试过你的例子和其他人,并删除了各种各样的空格。