첫문자열 공백제거
네이버지식인에 나온 질문을 테스트해보려고 복사해서 붙여넣기를 했더니
이렇게 앞부분이 공백으로 나오는 경우가 있습니다.
trim 함수 이용하여 지워도 절대 지워지지 않더군요. trim 함수는 문자열의 앞뒤의 스페이스바 공백 (아스키값 32)만 지우는 겁니다.
Sub asc_value()
Dim rngC As Range
Dim rngAll As Range
Dim temp As Variant
ActiveCell.Select
Set rngAll = Range(ActiveCell, Cells(Rows.Count, ActiveCell.Column).End(3))
For Each rngC In rngAll
temp = Asc(Left(rngC, 1))
MsgBox temp
Next rngC
End Sub
아스키 값을 알아냈다니 63 이라고 나오네요..
그래서
Sub 문자열변경()
Dim rngAll As Range
Set rngAll = Range(ActiveCell, Cells(Rows.Count, ActiveCell.Column).End(3))
rngAll.Replace What:=Chr(63), replacement:=""
End Sub
로 했더니....
이렇게 다 지워져 버리네요.. 알고보니 아스키값 63 은 ? 이더군요..
엑셀에서 ? 된 것은 모두를 뜻하여 전부 지워버린 거네요..
그래서 좀 불편하더라도
Sub 첫문자열공백제거()
Dim rngAll As Range
Dim rngC As Range
Dim sName As String
ActiveCell.Select '// 현재 커서가 있을 셀 선택
Set rngAll = Range(ActiveCell, Cells(Rows.Count, ActiveCell.Column).End(3))
For Each rngC In rngAll
sName = Left(rngC, 1) '// 첫번째 문자열 추출
If Asc(sName) = 63 Or Asc(sName) = 32 Then '//스페이스바의 아스키 값은 32
rngC = Mid(rngC, 2, Len(rngC))
End If
Next rngC
End Sub
코드를 사용해서 첫문자열 공백을 제거했습니다.
아스키 코드값을 알아내도 잘못 사용하면 데이터가 원하지 않는 결과를 얻을 수도 있다는 걸 알았습니다.
'업무 능력 향상 > 엑셀 VBA 기초' 카테고리의 다른 글
[VBA기초] 빈셀일 경우 윗셀의 내용으로 채우기 (0) | 2014.07.26 |
---|---|
[VBA기초] 셀 병합 해제하고 같은 값으로 채우기 (0) | 2014.07.26 |
[VBA기초] 여러행 한꺼번에 삭제 (0) | 2014.06.15 |
[VBA기초] 괄호 제거한 문자열 추출 (0) | 2014.06.08 |
[VBA기초] 셀 중앙정렬 (0) | 2014.06.04 |