split으로 해도 되는데
정규식으로 해도 쉽게 끝낼 수 있는데
꾸역꾸역 Replace를 사용해보고 싶어서.
정규식 설명이 잘 되어있는 블로그
- http://blog.naver.com/asaph16/220465400967
------------------------------------------------------------------------------------------------------------------------------
블루(^^)
그레이(^^)
이렇게 한 셀에 있는 걸
색상II블루(^
색상II그레이(^
이렇게 결과로 받고 싶습니다 두번째"^" 앞 까지요
------------------------------------------------------------------------------------------------------------------------------
Option Explicit Function plusColor$(str$) Dim M As Object Dim v, i% Dim v2$() v = Split(str, vbLf) '줄 바꿈 기준으로 텍스트 나움 ReDim v2(UBound(v)) 'v2 재선언 With CreateObject("vbscript.regexp") '정규식 선언 .Global = False '일치하는 패턴이 나오면 바로 멈춤 .Pattern = "(.*?\^.*?)\^" '패턴. 두번째 ^까지의 패턴 If .test(str) Then '일치하는 패턴이 있으면 For i = 0 To UBound(v) Set M = .Execute(v(i)) '정규식 실행 v2(i) = .Replace(M.Item(0), "색상||$1") '색상||을 앞에 삽입. 핵심 Next i v = Join(v2, vbLf) '텍스트가 변경된 배열을 줄바꿔서 합체 plusColor = v Else plusColor = "-" '일치하는 패턴이 없으면 - 출력 End If End With End Function | cs |
'VB(A)' 카테고리의 다른 글
1~9 중 세가지 조합 경우의 수 (0) | 2016.10.22 |
---|---|
팀별, 팀원을 섞어서 출석부 만들기 (0) | 2016.10.19 |
[정규식] 일정한 글자 길이만큼 잘라서 출력 (0) | 2016.10.05 |
영문자판으로 한글을 입력하는 결과를 보여주는 사용자정의 함수 (0) | 2016.09.29 |
리스트박스 선택 -> 셀에 출력 (0) | 2016.09.29 |