오늘 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
'Excel - VBA' 카테고리의 다른 글
Array로부터 1bit 단일색상 BMP 파일 만들기 (0) | 2023.03.11 |
---|---|
Excel로 바코드 발행하는 추가기능 EGBarcode (v2.8) - Code 128, Code 39, 2of5 Interleaved, EAN13, Datamatrix, QR Code, PDF417, Aztec Code, GS1-128, GS1-Datamatrix (3) | 2023.03.06 |
Barcode 출력하기 (Code 128, Code 39, 2of5 Interleaved, EAN13, Datamatrix, QR Code) (0) | 2023.02.26 |
Barcode Font와 VBA 코드 (0) | 2023.02.20 |
범위내의 그림/사진의 숫자를 가져오기 (0) | 2023.02.18 |