Проблема с автозаполнением Excel - PullRequest
1 голос
/ 17 февраля 2010

У меня проблемы со сценарием 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 ссылок на один лист. "

1 Ответ

0 голосов
/ 19 июня 2010

http://support.microsoft.com/kb/166342

"В Excel 2003 и более ранних версиях Excel одна рабочая таблица может содержать максимум 65 472 формул массива, ссылающихся на другую рабочую таблицу. Если вы хотите использовать больше формул, разбейте данные на несколько рабочих таблиц, чтобы их было меньше 65 472 ссылок на один лист. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...