- 帖子
- 155
- 主題
- 1
- 精華
- 0
- 積分
- 200
- 點名
- 4
- 作業系統
- windwos 7
- 軟體版本
- 64bit
- 閱讀權限
- 20
- 註冊時間
- 2017-5-29
- 最後登錄
- 2026-10-25
|
本帖最後由 quickfixer 於 2022-11-3 03:24 編輯
回復 1# Andy2483
用regexp好像比較方便,速度還快一些
Sub test()
Dim Find_Num, reg As Object, brr, crr, i&, j&, s As Double, runtime As Double
runtime = Timer
Application.ScreenUpdating = False
brr = Range([操作表!B2], [操作表!B65536].End(3))
Set reg = CreateObject("VBScript.RegExp")
reg.Pattern = "\d+"
reg.Global = True
ReDim crr(1 To UBound(brr), 0)
For i = 1 To UBound(brr)
s = 0
Set Find_Num = reg.Execute(brr(i, 1))
If Find_Num.Count > 0 Then
For j = 0 To Find_Num.Count - 1
s = s + Find_Num(j)
Next j
End If
crr(i, 0) = s
Next i
Range("d2").Resize(UBound(brr), 1) = crr
Application.ScreenUpdating = True
Debug.Print Timer - runtime
Set reg = Nothing
End Sub |
|