많은 데이터가있는 배열이 있으므로주기를 통해 시트를 Excel로 내보내는 데 익숙하지만 시간이 너무 오래 걸립니다. 빠른 대안을 들여다 보았다. 그러나 그때 나는 같은 클라이언트의 이름이 필요한 모든 작성된 것을 참조하십시오 resultWorkbook
을 열 때배열에서 범위로 셀에 쓰기 : 배열이 범위에 완전히 표시되지 않음
Sub displayRandomMatrix(clientsColl As Collection, resultWorkbook As Workbook)
Dim NamesRange As Range
With resultWorkbook.Worksheets("matrix_random")
...
Set NamesRange = _
.Range(.Cells(2, 1), .Cells(clientsColl.Count + 1, 1))
Dim NamesArray() As String
ReDim NamesArray(1 To clientsColl.Count)
Dim clientRow As Long
Dim simulation As Long
clientRow = 1
simulation = 1
Dim clientCopy As client
For Each clientCopy In clientsColl
For simulation = 1 To clientCopy.getRandomNumbers.Count
...
Next
NamesArray(clientRow) = clientCopy.getClientName
clientRow = clientRow + 1
Next
...
NamesRange.value = NamesArray
...
End With
'debugging
Debug.Print "**************start"
For clientRow = 1 To clientsColl.Count
Debug.Print NamesArray(clientRow)
Next
Debug.Print "**************end"
End Sub
을 :
지금 내가 직접 배열에 셀 범위의 값을 설정하여 정보를 표시하려고 1 열의 세포. 코드의 디버그 섹션도 올바른 출력을 생성합니다. 올바른 배열에 여러 클라이언트 이름이 있습니다.
배열에 범위를 할당하면 무언가가 깨지므로 NamesRange.value = NamesArray
입니다.
동시에 다른 배열과 비슷한 작업을 수행하지만 작동하지만이 때 버그가 발생합니다.
어떤 이유 일 수 있습니까?
참고 :clientsColl
은 올바른 클라이언트 모음입니다. 이 파일에는 아무런 문제가 없으며 resultWorkbook
도 마찬가지입니다.
고마워요! 또한 코드에 1 차원 배열이 있지만 여러 행 (의미, 가로 방향)으로 한 행을 표시합니다. 가로 배열은 배열로 변환 할 필요가 없다는 것을 의미합니까? – Ans