본문 바로가기
VBA/엑사남_기초방

[기초방 [기초방] VBA 100제 #73 [ 문자열에서 숫자만 재정렬하기]

by 일등미노왕국 2023. 10. 12.

더보기
Option Explicit

Sub 기초방73()

    Dim str$: str = [b4]                                             '= 문자열
    Dim Reg As Object: Set Reg = CreateObject("vbscript.regexp")     '= 정규식 선언
    Dim Mat As Object                                                '= 일치하는 값
    Dim V(1 To 65536, 1 To 1), rowV, i&, vtemp
    
    
    With Reg
        .Pattern = "\d+"                                             '= 1자리 이상 숫자
        .Global = True
    End With
    
    Set Mat = Reg.Execute(str)                                       '= 숫자들만 정규식으로 가져와라
    
    rowV = Application.Sequence(Mat.Count)
    
    For i = 1 To Mat.Count
    
        V(i, 1) = Mat(i - 1)                                         '= 정규식을 2차원 배열에 저장
    
    Next i
    
    vtemp = Application.Index(V, rowV, 1)                            '= 정규식 크기만큼 배열을 슬라이싱
    
   
    [i7].Formula2 = "=WRAPROWS(" & Application.ArrayToText(vtemp, 1) & ",7)"  '=출력
    

End Sub

기초방73.xlsm
0.02MB

댓글