VBA Redim Preserve 하다보면 발생하는 오류 '형식이 맞지 않습니다.'
2020. 1. 8. 13:13ㆍVBA/배열활용
728x90
반응형
생각으로는 "배열사이즈를 늘리면서 값이 있는 것만 들어가게 해야지!" 했을 때 아래 처럼 생각을 했다.
Redim Preserve v(1 to r, 1 to 2)
이런식으로 배열크기를 재 지정하면서
r = r + 1
Row 사이즈를 늘린다.
하지만 이 때 이 렇게 Redim Preserve를 사용했을 때 오류가 발생할 것이다.
왜냐하면 Redim Preserve v(1 to 1, 1 to 1) 사이즈 지정할 때 마지막 차원의 값만 늘릴 수 있다. 즉
v(row, col) 구조라고 하면 row를 늘리면서 사용할 수는 없다는 것이고,
col은 늘리면서 preserve를 사용할 수 있다.
Dim r as integer, c as integer
r = 1: c = 1
ReDim vs(1 To 9, 1 To r)
For i = LBound(v, 1) To UBound(v, 1)
If InStr(v(i, 9), "XXX") = 0 Then ' 값이 'XXX'라는 걸 포함하지 않는 것만
For j = LBound(vs, 1) To UBound(vs, 1)
vs(j, r) = v(i, c)
c = c + 1
Next j
c = 1
r = r + 1
ReDim Preserve vs(1 To 9, 1 To r)
End If
Next i
728x90
반응형
'VBA > 배열활용' 카테고리의 다른 글
VBA 배열 내에서 날짜비교 최신날짜 가져오기 (MAX 미사용) (0) | 2020.04.13 |
---|---|
VBA 숫자 정렬, 버블정렬 1탄 (1) | 2020.01.08 |
VBA 배열과 Range의 속도차이! (0) | 2020.01.08 |
VBA 배열 중복 제거 후 재 할당하기 (0) | 2018.12.07 |
이미 2행으로 입력 된 배열에 3행 추가 방법 (0) | 2018.12.07 |