|
- Sub 去数字()
- Dim arr
- Dim i As Long
- Dim j As Long
- Dim rg As Range
-
- If Not TypeName(Selection) = "Range" Then
- Exit Sub
- End If
-
- Application.ScreenUpdating = False
-
- Selection.NumberFormatLocal = "@"
-
- For Each rg In Selection.Areas
- If rg.Count = 1 Then
- rg.Value = rp(rg.Value)
- Else
- arr = rg.Value
- For i = LBound(arr) To UBound(arr)
- For j = LBound(arr, 2) To UBound(arr, 2)
- arr(i, j) = rp(arr(i, j))
- Next
- Next
- rg.Value = arr
- End If
- Next
- Application.ScreenUpdating = True
- MsgBox "替换完成"
- End Sub
- Function rp(rg) As String
- Dim objRegExp As Object
- Set objRegExp = CreateObject("VBScript.regExp")
- rp = rg
- With objRegExp
- .Global = True
- .Pattern = "(\d+?)(\.\d+)?"
- If .test(rg) Then
- rp = .Replace(rg, "")
- End If
- End With
- Set objRegExp = Nothing
- End Function
复制代码 |
评分
-
查看全部评分
|