반응형
VBA관련 프로그래밍을 하던 중 배열의 값을 출력해야 했는데 문제는 배열이 존재할 수도 있었고 존재하지 않을 수도 있는 상태였습니다. 즉 배열의 값을 출력하기 전에 먼저 배열이 존재를 하는지 안 하는지 확인을 해야 했습니다.
제가 해결 한 방법을 알려드리겠습니다.
Public Sub testArray()
Dim arr() As Variant
ReDim arr(2)
arr(0) = "V"
arr(1) = "b"
arr(2) = "A"
End Sub
위에 코드르 보면 동적 배열 arr의 배열의 크기는 인덱스 0에서 2까지 총인덱스는 3입니다.
하지만 동적 배열로 ReDim arr(2) 하기 전 arr의 배열을 확인하고 싶었습니다.
UBound(arr)
배열의 최대 인덱스를 나타내는 함수입니다.
이것으로는 ReDim arr(2) 이전의 arr배열이 존재하는지 안 하는지는 알 수 없습니다.
ReDim arr(2) 이전 UBound(arr)를 쓰면 에러가 발생했습니다.
그러면 어떻게 해야 할까요?
해결 방안입니다.
Public Sub testArray()
Dim arr() As Variant
If Not Not arr Then
MsgBox "배열 안에 값이 존재합니다."
Else
MsgBox "배열 안에 값이 존재하지 않습니다."
End If
End Sub
반응형
'VBA' 카테고리의 다른 글
엑셀VBA 해당 시트가 존재하는지 확인하는 방법 (1) | 2019.06.22 |
---|---|
VBA 엑셀 한 셀에 있는 문자열 한 글자씩 추출하는 방법 (0) | 2019.04.26 |
VBA 파일목록 검색 (0) | 2019.04.19 |
댓글