ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] ¦p¦ó­×¥¿ Or ªº³¯­z¤£²Å¦X«¬ºA

¥»©«³Ì«á¥Ñ quickfixer ©ó 2022-11-3 03:24 ½s¿è

¦^´_ 1# Andy2483

¥Îregexp¦n¹³¤ñ¸û¤è«K,³t«×ÁÙ§Ö¤@¨Ç

    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

TOP

¦^´_ 2# quickfixer


    ¦h¥Î¤F¤@­ÓÅܼÆ,­×¥¿¦p¤U
Sub test()
    Dim Find_Num, reg As Object, brr, crr, i&, j&, 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)
        Set Find_Num = reg.Execute(brr(i, 1))
        If Find_Num.Count > 0 Then
            For j = 0 To Find_Num.Count - 1
                crr(i, 0) = crr(i, 0) + Val(Find_Num(j))
            Next j
        End If
    Next i
    Range("d2").Resize(UBound(brr), 1) = crr
    Application.ScreenUpdating = True
    Debug.Print Timer - runtime
    Set reg = Nothing
End Sub

TOP

        ÀR«ä¦Û¦b : ¡i¥Í©R¦b©I§l¶¡¡j¦òªû»¡¡G¡u¥Í©R¦b©I§l¶¡¡C¡v¤HµLªkºÞ¦í¦Û¤vªº¥Í©R¡A§óµLªk¾×¦í¦º´Á¡AÅý¦Û¤v¥Ã¦í¤H¶¡¡C¬JµM¥Í©R¥h¨Ó³o»òµL±`¡A§Ú­Ì§óÀ³¸Ó¦n¦n¦a·R±¤¥¦¡B§Q¥Î¥¦¡B¥R¹ê¥¦¡AÅý³oµL±`¡BÄ_¶Qªº¥Í©R¡A´²µo¥¦¯uµ½¬üªº¥ú½÷¡A¬M·Ó¥X¥Í©R¯u¥¿ªº»ù­È¡C
ªð¦^¦Cªí ¤W¤@¥DÃD