1
2 차원 VBA 동적 배열에서 double 형의 큰 행렬을 생성합니다. 즉,하지 않는 한Excel : 런타임 오류 '1004'Worksheet.Activate를 호출하지 않고 Range에 VBA Array를 할당합니다.
Runtime Error '1004':
Application-defined or Object-defined Error
, 나는 할당하기 전에 Worksheet.Activate 전화 : 나는 엑셀 Range 개체의 배열을 할당 할 때, 나는 다음과 같은 오류가 발생합니다. (배열의 크기는 약 88 X 1150) 여기 코드 싹둑입니다 : 문제는 세포 개체이다
Dim lIndxRow As Long, lIndxRowBase As Long, lIndxRowLast As Long, lIndxCol As Long, lIndxColBase As Long, lIndxColLast As Long
lIndxRow = [Close_FirstRow]
lIndxRowBase = [Close_FirstRow]
lIndxRowLast = [Close_LastRow]
lIndxColBase = [Close_FirstCol]
lIndxColLast = [Close_LastCol]
Dim Mat() As Double
ReDim Mat(lIndxRowBase To lIndxRowLast, lIndxColBase To lIndxColLast + 1)
While lIndxRow <= lIndxRowLast
nSharesTotal = 0#
While lIndxCol <= lIndxColLast
Dim nShares As Double
'
' Calculate value for nShares
'
Mat(lIndxRow, lIndxCol) = nShares
nSharesTotal = nSharesTotal + nShares
lIndxCol = lIndxCol + 1
Wend
Mat(lIndxRow, lIndxCol) = nSharesTotal
lIndxRowPrev = lIndxRow
lIndxRow = lIndxRow + 1
Wend
' no error when next line uncommented
'Worksheets("Share Pos").Activate
Worksheets("Share Pos").Range(Cells(lIndxRowBase, lIndxColBase), Cells(lIndxRowLast, lIndxColLast + 1)).Value2 = Mat
감사합니다. 또 다른 전투는 비밀스러운 오류 메시지와의 전쟁에서 승리했습니다. – ThomasMcLeod