|
把所有字母去掉。
不好意思,我这没测。 - Sub 方法3()
- Dim i As Long, j As Long, k As Long
- Dim arr(), result()
- Application.ScreenUpdating = False
- Application.DisplayAlerts = False
- Application.EnableEvents = False
- Application.Calculation = xlCalculationManual
- If TypeName(Selection) <> "Range" Then
- MsgBox "所选对象非单元格"
- GoTo Quit
- End If
- Dim objRegExp As Object
- Set objRegExp = CreateObject("VBScript.regExp")
- With objRegExp
- .Global = True
- .Pattern = "[a-z,A-Z]"
- For k = 1 To Selection.Areas.Count
- '防止区域只有一个单元格,这样赋值就不存在数组一说了。
- If Selection.Areas(k).Count = 1 Then
- Selection.Areas(k).Value = .Replace(Selection.Areas(k).Value, "")
- Else
- arr = Selection.Areas(k).Value
- ReDim result(1 To UBound(arr), 1 To UBound(arr, 2))
- For i = LBound(arr) To UBound(arr)
- For j = LBound(arr, 2) To UBound(arr, 2)
- If .test(arr(i, j)) Then
- result(i, j) = .Replace(arr(i, j), "")
- Else
- result(i, j) = arr(i, j)
- End If
- Next
- Next
- Selection.Areas(k).Value = result
- End If
- Next
- End With
- MsgBox "OK"
- Quit:
- Application.ScreenUpdating = True
- Application.DisplayAlerts = True
- Application.EnableEvents = True
- Application.Calculation = xlCalculationAutomatic
- End Sub
复制代码
|
|