반응형
ReDim Preserve는 무엇을 합니까?
나는 다른 사람의 vba 엑셀 코드를 보고 있습니다.그들은 하고 있습니다ReDim Preserve dataMatrix(7, i)
양쪽 루프에서이것은 무엇을 합니까?
그리고 두 번째 루프는 첫 번째 루프의 데이터를 덮어쓰는 것 같은데 맞나요?
Dim dataMatrix() As String
Worksheets.Item("ETS").Select
Do While Trim(Cells(r, 1)) <> ""
Debug.Print "The line: ", Trim(Cells(r, 1)), r
r = r + 1
dataMatrix(1, i) = Trim(Cells(r, 1)) ''file name
dataMatrix(2, i) = Trim(Cells(r, 2)) ''sample type
dataMatrix(3, i) = Trim(Cells(r, 3)) ''sample name
dataMatrix(4, i) = "ETS" ''
dataMatrix(5, i) = Trim(Cells(r, 5)) ''Response
dataMatrix(6, i) = Trim(Cells(r, 6)) ''ISTD Response
dataMatrix(7, i) = Trim(Cells(r, 10)) ''Calculated Conc
i = i + 1
ReDim Preserve dataMatrix(7, i)
Loop
r = 5
Worksheets.Item("ETG").Select
Do While Trim(Cells(r, 1)) <> ""
Debug.Print "The line: ", Trim(Cells(r, 1)), r
r = r + 1
dataMatrix(1, i) = Trim(Cells(r, 1)) ''file name
dataMatrix(2, i) = Trim(Cells(r, 2)) ''sample type
dataMatrix(3, i) = Trim(Cells(r, 3)) ''sample name
dataMatrix(4, i) = "ETG"
dataMatrix(5, i) = Trim(Cells(r, 5)) ''Response
dataMatrix(6, i) = Trim(Cells(r, 6)) ''ISTD Response
dataMatrix(7, i) = Trim(Cells(r, 10)) ''Calculated Conc
i = i + 1
ReDim Preserve dataMatrix(7, i)
Loop
Redim Preserve
배열의 내용을 유지하면서 배열의 치수를 변경할 수 있습니다.
그Redim Preserve
각 루프의 끝에서 다른 행을 배열에 추가합니다.
제 생각에 두 번째 루프가 배열에 추가되는 것 같습니다.i
변수는 루프 간에 변경되지 않습니다.
ReDim
데이터 크기를 수정할 때 어레이의 데이터를 보존합니다.또한 다음과 같은 이유로 데이터를 덮어쓰지 않아야 합니다.i
루프가 반복될 때마다 증가합니다. 첫 번째 루프는 빈 셀을 만날 때까지 멈추지 않고, 반복될 때마다 배열 길이를 하나씩 변경하여, 길이가 다음과 같을 때.8
덧붙여서1
에게i
그리고 새로운 길이가 됩니다.9
두 번째 반복이 발생하면 인덱스가 있는 배열의 경계에 새 요소를 씁니다.9
길이를 다시 수정하여 다음이 되도록 합니다.1
요소가 더 길어지고 빈 줄이 나타날 때까지 반복됩니다.
언급URL : https://stackoverflow.com/questions/2916009/what-does-redim-preserve-do
반응형
'programing' 카테고리의 다른 글
C에서 데이터 섹션과 bss 섹션의 차이 (0) | 2023.06.08 |
---|---|
Shiny에서 '최대 업로드 크기 초과' 제한을 변경하고 사용자 파일 입력을 저장하는 방법은 무엇입니까? (0) | 2023.06.08 |
Vue + Vuex + Phaser 반응형 통화에서 '이' 스코프가 손실됨 (0) | 2023.06.08 |
sklearn에서 'fit_sk'와 'fit_sk'의 차이점은 무엇입니까? (0) | 2023.06.08 |
Oracle: null 및 non-null 행을 카운트하는 방법 (0) | 2023.06.08 |