Excel FormulaR1C1 и FormulaArray

У меня есть следующая таблица в Excel. Я хочу заполнить оставшуюся часть таблицы формулой массива, которую я успешно проверил в столбце B.

введите описание изображения здесь

Код ниже autofills таблицы, но не с формулой массива, просто с формулой, поэтому он не возвращает требуемый результат. Как изменить его так, чтобы формула массива была распространена?

Обратите внимание, что число пользователей и курсов изменяется, поэтому динамический расчет диапазона является фиксированным требованием.

Dim LastCol As Long, LastRow As Long LastCol = Cells(2, Columns.Count).End(xlToLeft).Column LastRow = Cells(Rows.Count, "B").End(xlUp).Row Range("B3", Cells(LastRow, LastCol)).FormulaR1C1 Range("B3").FormulaR1C1 

Ответ, который работает для меня: –

 Range("B3").Copy Dim LastCol As Long, LastRow As Long LastCol = Cells(2, Columns.Count).End(xlToLeft).Column LastRow = Cells(Rows.Count, "B").End(xlUp).Row 'Range ("C3:F12") Range("C3", Cells(LastRow, LastCol)).Select Selection.PasteSpecial xlPasteFormulas Application.CutCopyMode = False 

Я использовал это, чтобы заставить его работать ………

 Range("B3").Copy Dim LastCol As Long, LastRow As Long LastCol = Cells(2, Columns.Count).End(xlToLeft).Column LastRow = Cells(Rows.Count, "B").End(xlUp).Row Range("C3", Cells(LastRow, LastCol)).Select Selection.PasteSpecial xlPasteFormulas Application.CutCopyMode = False 

Изменить, так как он не работает так, как предполагалось. Там будет два других метода, которые я бы использовал. Во-первых, наиболее очевидным является диапазон. .AutoFill :

 Dim LastCol As Long, LastRow As Long LastCol = Cells(2, Columns.Count).End(xlToLeft).Column LastRow = Cells(Rows.Count, "B").End(xlUp).Row Range("B3").AutoFill Destination:=Range("B3", Cells(3, LastCol)), Type:=xlFillDefault Range("B3", Cells(3, LastCol)).AutoFill Destination:=Range("B3", Cells(LastRow, LastCol)), Type:=xlFillDefault 

Что хорошо работает, вы можете легко контролировать, как будут выглядеть формулы.
Другой вариант – перебрать все ячейки вашего диапазона и просто скопировать формулу, хотя она просто копирует формулу как есть, со всеми ссылками на оригинальную ячейку поиска, и я сомневаюсь, что это то, что вы ищете, но здесь все же :

 Dim LastCol As Long, LastRow As Long LastCol = Cells(2, Columns.Count).End(xlToLeft).Column LastRow = Cells(Rows.Count, "B").End(xlUp).Row For i = 3 To LastRow For j = 2 To LastCol Cells(i, j).FormulaArray = Cells(3, 2).FormulaArray Next j Next i 
  • функция прогнозирования FORECAST.ETS в excel не работает
  • Код Excel VBA для заполнения сводного листа формулой, связывающей ячейки
  • Расширение формулы Excel без ссылки на предыдущую ячейку
  • Формула Express массива в виде формулы без массива в Excel
  • обновление максимального значения диапазона
  • Excel суммарный диапазон ячеек в столбце, где значение строки соответствует требованию
  • Формула для сопоставления нескольких сот строк, включая пустую ячейку
  • Вложенный IF с MATCH не работает должным образом
  • Произвольное создание 2 дат в неделю в течение 2 лет
  • Преобразование букв в текст и обратно (Excel 2013)
  • (Excel) Вложенный запрос IF или AND
  • Давайте будем гением компьютера.