У меня проблемы со сценарием VBA. Функция заполняет лист некоторыми формулами. В большинстве случаев он работает нормально, однако, когда я запускаю его на большом наборе данных ... он вылетает с:
Ошибка времени выполнения «1004»: сбой метода автозаполнения класса Range
Отладчик указывает на последний вызов автозаполнения. Когда я смотрю на лист, кажется, что вызов автозаполнения работал около 3/4 пути, но останавливается.
With Sheets("OPENS")
' Fill OPENS formulas
.Range("B" & firstRowOPENS - 3) = "=DATE(YEAR($B$1), MONTH($B$1)+2, DAY($B$1))"
.Range("B" & firstRowOPENS - 3).NumberFormat = "[$-409]mmm-yy;@"
.Range("C" & firstRowOPENS - 3) = "=C1+2"
.Range("B" & firstRowOPENS - 1) = "=SUBTOTAL(109,B" & firstRowOPENS & ":B" & lastRowOPENS & ")"
.Range("B" & firstRowOPENS - 1).AutoFill .Range("B" & firstRowOPENS - 1 & ":" & lastColOPENS & firstRowOPENS - 1), xlFillValues
.Range("B" & firstRowOPENS) = "=SUM(C" & firstRowOPENS & ":" & lastColOPENS & firstRowOPENS & ")"
.Range("C" & firstRowOPENS).FormulaArray = "=SUM( ('Combined Input'!R2C2:R" & lastRowCI & "C2=RC1) * ('Combined Input'!R2C45:R" & lastRowCI & "C45=R2C) * ('Combined Input'!R2C43:R" & lastRowCI & "C43 = R1C4) * INDEX('Combined Input'!R2C5:R" & lastRowCI & "C40, 0,R" & firstRowOPENS - 3 & "C3,1)) * R[-" & (lastRowOPENS - firstRowOPENS + 5) * 2 & "]C" & OPENS_PROB_COL
.Range("C" & firstRowOPENS).AutoFill .Range("C" & firstRowOPENS & ":" & lastColOPENS & firstRowOPENS), xlFillValues
If lastRowOPENS > firstRowOPENS Then
.Range("B" & firstRowOPENS & ":" & lastColOPENS & firstRowOPENS).AutoFill .Range("B" & firstRowOPENS & ":" & lastColOPENS & lastRowOPENS), xlFillValues
End If
setBorders .Range("A" & firstRowOPENS - 2 & ":" & lastColOPENS & lastRowOPENS)
End With
Есть предложения?
Edit:
Я нашел проблему: http://support.microsoft.com/kb/166342
"В Excel 2003 и более ранних версиях Excel одна рабочая таблица может содержать максимум 65 472 формул массива, ссылающихся на другую рабочую таблицу. Если вы хотите использовать больше формул, разбейте данные на несколько рабочих таблиц, чтобы их было меньше 65 472 ссылок на один лист. "