Копирование одномерного массива формул в столбец списка объектов в Excel без автоматического заполнения из первой ячейки - PullRequest
0 голосов
/ 22 ноября 2018

Сводит меня с ума.У меня есть список формул в одномерном массиве, который я хочу скопировать в столбец, на который ссылается заголовок столбца объекта.Однако, когда я пытаюсь скопировать массив формул, Excel берет первую формулу в массиве и автоматически заполняет ее.Если я использую диапазон, который отключен на единицу (например, заполнить все ячейки, кроме первой, или все, кроме последней), он не заполняется автоматически и использует формулы массива, как ожидалось.Итак, мой текущий код, который работает так:

    subtotalRange = tblSubtotalColLtr & tblSubtotalFirstRowRef & ":" & tblSubtotalColLtr & (tblSubtotalFirstRowRef + UBound(arrFormulas) - 2)
    finalRowRange = tblSubtotalColLtr & (tblSubtotalFirstRowRef + UBound(arrFormulas) - 1) & ":" & tblSubtotalColLtr & (tblSubtotalFirstRowRef + UBound(arrFormulas) - 1)
    Application.AutoCorrect.AutoFillFormulasInLists = False
    Range(subtotalRange).Formula = Application.Transpose(arrFormulas)
    Range(finalRowRange).Formula = arrFormulas(UBound(arrFormulas))

Сначала я пытался просто сделать это:

    Application.AutoCorrect.AutoFillFormulasInLists = False
    tbl.ListColumns(tbl.HeaderRowRange(AmountCol).Value).DataBodyRange.formula = application.transpose(arrFormulas)

Текущий код супер-kludge-y - есть ли способзаставить второй работать?Что я делаю не так?

1 Ответ

0 голосов
/ 22 ноября 2018

Вам нужно изменить размер DataBodyRange, чтобы он соответствовал вашему массиву.

Application.AutoCorrect.AutoFillFormulasInLists = False
tbl.ListColumns(AmountCol).DataBodyRange.Resize(UBound(arrFormulas) + 1).Formula = 
Application.Transpose(arrFormulas)
...