꽤 오래전 셀 공백 지우기 글을 쓴적이 있다.
[엑셀VBA] 숫자 데이터 공백 지우기(앞/뒤/가운데 전부)
숫자 데이터 공백 지우기(앞/뒤/가운데 전부)DB를 엑셀로 변환하거나 아웃룩, 파워포인트, 웹에서 데이터를 드래그 하다보면,숫자 데이터 사이에 공백이 생겨, 텍스트로 인식되는 경우가 있다.
sunnybong.tistory.com
하지만 여기서 치명적인 결함이 발견되었으니, 엑셀에서 입력한 데이터가 아니라,
웹에서 가져온 데이터에서 여백이 있을 경우, 공백이 지워지지 않는다는 점이다.
코드를 약간 수정해 보았다.
물론. 해당 여백을 처리하는 과정만 포함되었고, 다른 또 어떤 오류가 발생할지는...
나도 모른다.
Sub del_blank()
Dim myRNG As Range
Dim k As Integer
If MsgBox("수식 다 날아갑니다", vbExclamation + vbYesNo) = vbNo Then
GoTo dd
End If
On Error Resume Next
Application.DisplayAlerts = False
Set myRNG = Application.InputBox("공백없앨 영역선택", , , , , , , 8)
Application.DisplayAlerts = True
On Error GoTo 0
If myRNG Is Nothing Then
MsgBox "범위를 선택하지 않아, 종료합니다"
GoTo dd
End If
For k = 1 To myRNG.Count
On Error Resume Next
If Asc(myRNG(k)) = 63 Then
num = Application.WorksheetFunction.Unichar(Application.WorksheetFunction.Unicode(myRNG(k)))
myRNG(k) = Application.WorksheetFunction.Trim(Replace(myRNG(k), num, ""))
End If
On Error GoTo 0
myRNG(k) = WorksheetFunction.Trim(myRNG(k))
myRNG(k) = Replace(myRNG(k), " ", "")
Next k
dd:
End Sub