Excel VBA TRIM宏不修剪电子邮件地址

时间:2015-01-22 09:28:17

标签: string vba excel-vba trim excel

我有一个宏来修剪当前所选列中的所有单元格,当我在普通文本,名称,邮政编码等上使用它时它工作正常,但是当它用于修剪电子邮件地址列时,它不会删除尾随空格。

'这需要修剪'变成'这需要修剪'但是 '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

我无法理解为什么它适用于每一列但不适用于电子邮件地址。

1 个答案:

答案 0 :(得分:0)

你可以不用重新发明轮子就可以了。

请使用此功能作为示例代码继续。

Public Function TrimStr(inputStr As String) As String
    TrimStr = WorksheetFunction.Trim(inputStr)
End Function

我已经尝试过你的例子和其他人,并删除了各种各样的空格。