출처 : 엑셀 하루에 하나씩 카페
1.해당 엑셀 시트에서 Alt+F11을 누르거나, 도구-매크로-'Visual Basic Editor"를 실행합니다.
2. VBA편집기가 나오면, 메뉴바에서 "삽입-모듈"을 실행합니다.
3. 하얀 백지화면이 나오면 아래 코드를 그대로 복사해다가 붙여넣습니다.
4. Alt+F11을 눌러 다시 원래의 워크시트로 돌아오십니다.
5. 일반 워크시트 함수와 똑같이 사용하시면 됩니다.
** 단점은 띄어쓰기가 된 걸 인식하지 못한다는 것이다.
그래서 편법으로 " " 공백문자를 인식하도록 하는" "를 추가했다.
두개의 조건문에 모두 넣으니 인식이 안되길래 한번씩 사용하는 걸로 하고 두번에 걸쳐서 자료를 추출했더니
원하는 결과값이 얻어졌다. 심봤다!!!!!!!!!!
아래 함수를 직접 만들어주신 분께 정말 감사드립니다
Function CutText(sText As String, Optional LanguageType As Integer = 1) As Variant
' ----------------------------------------------------------------------------------------
' 설명 : 인수로 전달한 sText 에서 LanguageType 의 값에 따라 지정한
' 형식의 텍스트만 분리해서 전달합니다.
' LanguageType 의 사용값
' 1 : 숫자
' 2 : 영어 : 띠어쓰기 인식하도록 " " 추가하고, ' 인식하도록 추가
' 3 : 한글
' 4 : 한자
' 작성일 : 2005 / 9 / 20
' ----------------------------------------------------------------------------------------
Dim sCut As String
Dim sTMP As String
Dim i As Integer
Application.Volatile
If LanguageType > 4 Then
CutText = CVErr(xlErrNA) '#N/A 오류를 반환
Exit Function
End If
For i = 1 To Len(sText)
sCut = Mid(sText, i, 1)
Select Case sCut
Case 0 To 9
If LanguageType = 1 Then sTMP = sTMP & sCut
Case "a" To "z", "A" To "Z", " ", "'"
If LanguageType = 2 Then sTMP = sTMP & sCut
Case "가" To "힣", "ㄱ" To "ㅎ", "ㅏ" To "ㅣ"
If LanguageType = 3 Then sTMP = sTMP & sCut
Case Else
If LanguageType = 4 Then
If Asc(sCut) >= -13663 And Asc(sCut) < 0 Then sTMP = sTMP & sCut
End If
End Select
Next
CutText = sTMP
End Function
'업무 능력 향상 > 엑셀 VBA 기초' 카테고리의 다른 글
[VBA] convert TextNumber to Number (0) | 2014.01.25 |
---|---|
[VBA기초] InStr 를 이용한 셀 분리 (2) | 2014.01.19 |
[VBA기초] 자체셀내의 중복여부 검사 (0) | 2014.01.11 |
[VBA기초] 아스키코드 알아내기 (0) | 2014.01.10 |
엑셀 VBA 참고하면 좋은 사이트 소개 (1) | 2013.12.21 |