0
나는이 코드를 이미 가지고있는 배열을 가지고 있습니다. 이제 다음을 수행 할 수 있도록 코드를 수정하고 싶습니다. 내가 가지고있는 코드는 이조 나는 단지 캔트 작업을 수행 언급 한 바와 같이, 예를 들어중복 된 vba 배열이 중첩 된 방식으로
원래 배열
1 5
2 7
3 11
4 15
이
1 1 2 2 3 3 4 4
5 5 7 7 11 11 15 15
가되도록
배열의 각 항목은 중복됩니다 복제 방법
Public Sub DynamicTranspose1()
Dim I As Variant
Dim J As Variant
Dim transArray() As Variant
Dim numRows As Integer
Dim numColumns As Integer
'—————————————-
'Get rows for dynamic array.
'—————————————-
Do
numRows = I
I = I + 1
Loop Until Cells(I, "A").Value = ""
'———————————————-
'Get columns for dynamic array.
'———————————————-
I = 0
Do
numColumns = I
I = I + 1
Loop Until Cells(1, Chr(I + 64)).Value = ""
ReDim transArray(numRows - 1, numColumns - 1)
'—————————————————-
'Copy data from worksheet to array.
'—————————————————-
For I = 1 To numColumns
For J = 1 To numRows
transArray(J - 1, I - 1) = Cells(J, Chr(I + 64)).Value
Next J
Next I
maxcol = Split(Cells(1, numColumns).Address, "$")(1)
Range("A1:" & maxcol & numRows).ClearContents
'———————————————————————
'Copy data from array to worksheet transposed.
'———————————————————————
For I = 1 To numColumns
For J = 1 To numRows
Cells(I, Chr(J + 64)).Value = transArray(J - 1, I - 1)
Next J
Next I
End Sub
누군가가 도움을 줄 수 있습니까?
왜 이렇게해야하는지 궁금합니다. 배열을 두 번 반복하거나 한 번 반복하는 것과 같은 더 나은 대안이있을 수 있지만 동일한 배열 요소에 변수 쌍을 설정하는 것 같습니다. –
루핑은 매우 큰 데이터 세트만큼 길어질 것이며, 지금까지는 조바꿈이 발생하는 가장 빠른 방법입니다. – Ingram
또한 검색 할 특정 필드를 선택할 것입니다. – Ingram