Excel - VBA

Array값중 Empty 값이 Null로 변경되는 오류

EGTools 2023. 2. 28. 12:56

오늘 VBA 매크로 기능중 이상한 내용이 있어 확인을 했습니다.

셀 내용을 Array로 전환한 다음

각 셀의 내용이 없는 것과 Format(값, "YYYY-MM")으로 당월인지 확인하는 과정이 있었는데,

아래와 같은 IF문을 거치면 Array내의 Empty 값이 Null로 변환이 되어 계속 예상하지 못한 결과가 나왔습니다.

IF Format(vData(r, c), "YYYY-MM") = "2023-03" Then 

 

그래서 별도로 빈 Array를 하나 만들어 점검해 봤는데, 이러네요...

Sub testEmptyTurnToNullError()
  Dim vData As Variant, r As Long, c As Long, EmptyCount As Long, NullCount As Long
  ReDim vData(1 To 10, 1 To 10)
  
  For r = 1 To 10
  For c = 1 To 10
    If IsEmpty(vData(r, c)) Then EmptyCount = EmptyCount + 1
    If IsNull(vData(r, c)) Then NullCount = NullCount + 1
  Next c
  Next r
  Debug.Print "Before Format : Empty=" & EmptyCount, "Null=" & NullCount
  
  For r = 1 To 10
  For c = 1 To 10
    If Format(vData(r, c), "0") = "" Then
    End If
  Next c
  Next r
  
  EmptyCount = 0
  NullCount = 0
  For r = 1 To 10
  For c = 1 To 10
    If IsEmpty(vData(r, c)) Then EmptyCount = EmptyCount + 1
    If IsNull(vData(r, c)) Then NullCount = NullCount + 1
  Next c
  Next r
  
  Debug.Print "After  Format : Empty=" & EmptyCount, "Null=" & NullCount

End Sub