http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1050202&eid=Cldup1sGgmV5wXb3Ktt4CKnryRloYMd0&qb=x9Gx2yC757/rwNogwaTAxyDH1Lz2&enc=euc-kr 사용자정의함수란, 엑셀에서 제공하고 있지 않은 기능을 가진 함수를 VBA를 이용하여 사용자가 직접 정의하여 만드는 함수입니다. 따라서 자기가 쓰고자하는 목적을 구현할 수 있기에 편리합니다만, VBA를 다룰 줄 알아야하기때문에 상당히 고급의 경지에 올라야합니다. 저도 VBA는 잘 모르기 때문에, 여기서는 위의 출처에 나온 내용만을 따라하도록 하겠습니다. 참고로, 한글,영어,숫자등이 섞여있는데 숫자만을 분리하고 싶다면? 아래 코드를 잘 보시면 strEng = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" 이런 부분이 있습니다. 그러니까 이런 영문알파벳을 찾으면 어떻게 하라는 이야기지요. 여기서 영문알파벳이 들어가 있는 부분을 숫자로 바꿔서 strEng = "0123456789" 이렇게 쓰면 ======================================================================================= 1.해당 엑셀 시트에서 Alt+F11을 누르거나, 도구-매크로-'Visual Basic Editor"를 실행합니다. 2. VBA편집기가 나오면, 메뉴바에서 "삽입-모듈"을 실행합니다. 3. 하얀 백지화면이 나오면 아래 코드를 그대로 복사해다가 붙여넣습니다. 4. Alt+F11을 눌러 다시 원래의 워크시트로 돌아오십니다. 5. 일반 워크시트 함수와 똑같이 사용하시면 됩니다.
=KeSplit(한영섞인문자열 또는 셀 주소,구분기호) (※ 구분기호를 생략하면 '|'가 삽입됨) e.g. = Kesplit("He wants to go. 그는 가고 싶어한다.","#") 또는 = KEsplit(A1, "@") 등등.. Pack your things. 네 물건들을 싸라.Pack your things. #네 물건들을 싸라.비행기 날개 the wings of an airplane비행기 날개 #the wings of an airplane나는 수영에 흥미가 있다. I'm interested in swimming.나는 수영에 흥미가 있다. #I'm interested in swimming.draw pictures with crayons 크레용으로 그림을 그리다 draw pictures with crayons #크레용으로 그림을 그리다
6. 위 함수로 구분기호가 삽입되었다면, 간단히 Left함수를 이용해 영문을 뽑아내세요.
A1: "Pack your things. #네 물건들을 싸라." 일때 =Left(A1,Find("#",A1)-1)
Function KEsplit(str As String, Optional spliter As String) As String Dim intLen As Integer strEng = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" intLen = Len(str) isEng = True ChngStart = i - 1 For i = 1 To intLen End Function 공유하기 게시글 관리 구독하기rand(life)저작자표시 비영리 동일조건
|