CDbl 함수에서 빈 칸을 0 으로 처리 하는 방법
VB 에서 CDbl
함수를 사용 하다가 문제가 발생했습니다.
Double
로 형식을 변환해야 할 값들이 굉장히 많은데, 그 중에 일부는 0 이 아니라 빈 칸인 경우였죠. 몰랐는데 CDbl
함수는 빈 칸을 String
으로 인식해서 형식이 일치하지 않는다는 오류를 뿜어 내더라고요.
당연히 빈 칸은 0으로 바꿔 줄거라고 믿었는데!
그래서 이 문제를 어떻게 해결하면 좋을지 알아보았습니다.
CDbl2 함수 만들기
사실 제일 간단한건 아주 간단하게 함수를 하나 더 만드는 것이었습니다. 함수명은 CDbl2
라고 해보죠.
Public Function CDbl2(Value as Variant)
If Trim(Value) = "" Then
CDbl2 = 0
Else
CDbl2 = CDbl(Value)
End If
End Function
아주 간단하죠? 빈 칸을 입력 받으면 0 을 반환하고, 그렇지 않으면 CDbl
함수를 이용해 형식을 변환해주는 것입니다. 혹시나 공백이 들어갈까봐 Trim
까지 사용해주었습니다.
사용법이야 CDbl
함수랑 별반 다를게 없으니 고민하던 문제가 깔끔하게 해결됩니다.
또 다른 해결 방법 feat. Val
또 다른 해결 방법은 내장함수인 Val
함수를 사용 하는 것입니다.
따로 함수를 만들지 않아도 되니까 더욱 편리하죠. 사용법도 간단합니다.
Result = Val(NumberOrString)
Val
함수는 문자와 숫자가 막 섞여 있어도 그 중 숫자만 쏙쏙 잘 뽑아서 숫자 형태로 반환해줍니다. 물론 빈 칸을 투입하면 0을 반환해주니 CDbl
함수의 문제점도 바로 해결 할 수 있죠.
이상으로 CDbl
의 빈 칸 투입 시 에러 발생 문제를 해결 할 수 있는 방법에 대해 알아보았습니다.
댓글 남기기