VB(A)

글자나누기 - Split, 정규식

당근쨈 2016. 10. 30. 11:17

http://cafe.naver.com/excelmaster/131920


/ 기준으로 나누어 셀에 출력.

Split 과 정규식버전으로 나눔


자세한 사항은 주석 참조




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Option Explicit
 
Sub mSplit()
 
    Dim rnG As Range
    Dim Data As Range
    Dim v As Variant
    
    'A열의 데이터를 순환합니다.
    '/ 를 기준으로 나누어 [ ] 를 제외한 데이터를 출력합니다.
    
    Set Data = Range("A1").CurrentRegion
    Range("C1").CurrentRegion.ClearContents
    
    For Each rnG In Data
    
        With rnG
            v = Split(.Value, "/")
            .Offset(, 2= Replace(v(0), "[""")
            .Offset(, 3= Replace(v(1), "]""")
        End With
        
    Next rnG
End Sub
-----------------------------------------------------------------
Sub RegExp()
'정규식버전입니다.
'[] 와 / 를 제외한 텍스트를 불러오는 패턴입니다.
 
    Dim rnG As Range
    Dim Data As Range
    Dim M As Object
    Dim i As Integer
    
    Set Data = Range("A1").CurrentRegion
    Range("C1").CurrentRegion.ClearContents
    
    With CreateObject("vbscript.regexp")
        .Global = True
        .Pattern = "\[(.+)\/(.+)\]"
        
        For Each rnG In Data
            
            If .test(rnG) Then
                
                Set M = .Execute(rnG)(0)
                rnG.Offset(, 2= M.submatches(0)
                rnG.Offset(, 3= M.submatches(1)
            
            End If
        
        Next rnG
        
    End With
    
End Sub
 
cs

글자나누기.xlsm