rand(life)
[VBA] "한글, 영어" 구조에서 앞쪽 한글만 지우기 본문
예를 들어 아래와 같이 셀 하나에 한글, 영어가 이어서 나오는 경우, 한글은 지우고 영어만 남기려고 할때
값비싼, 일류의, 화려한 expensive, popular, and fashionable |
영어 소문자의 아스키코드는 97에서 122까지라는 점을 이용한 방법이다. (출저: https://blog.naver.com/dowahn/130172409926)
replace 함수도 이용했다. 워크시트함수의 replace나 '찾기바꾸기'의 replace와 약간 다르니 주의할 필요가 있다.
replace(문자열, 찾을문자, 바꿀문자, 시작위치, 문자의길이)
Sub checkhangul()
Dim r As Range, intAsc As Long, sAll As String, i As Long
For Each r In Range("B1").EntireColumn.SpecialCells(xlCellTypeConstants)
sAll = CStr(r.Value)
Do
s = Mid(r, i + 1, 1) '문자를 하나씩 차례대로
intAsc = Asc(s) '아스키 코드 얻기
If intAsc < 97 Or intAsc > 122 Then '영어 소문자가 아니면
sAll = Replace(r, s, "", i + 1, 1) '해당 문자를 i+1의 위치에서 1글자만큼 공백으로 바꾼다
End If
i = i + 1
If i >= Len(r) Then Exit Do '한글+영어의 구조가 아닌 셀의 경우를 위해 필요한 구문
Loop Until intAsc >= 97 And intAsc <= 122 '영어 소문자가 등장할때까지 반복
r(, 0) = sAll
i = 0
Next
End Sub