Здравствуйте. Возникла, казалось бы простая задача, растянуть формулу массива до конца последней строки, но по какой то причине это не выходит. Делал так.
В Range("P2: Последняя строка / столбец") у меня имеются формулы ({массивы}).
Я прочитал на форумах, что за вставку массивов отвечает не formula / formular1c1, а FormulaArray.
Растягивать нужно в "P3: последняя строка/столбец"
Вся это конструкция не работает. Я не понимаю почему, особенно если учитывать что
работает без проблем
Ситуация с Range("A1:A2") и Range(Cells (1,1), Cells(1,2)) должна быть одинаковой (так везде в примерах приведено), но у меня это не работает и всегда выдает ошибку.
В Range("P2: Последняя строка / столбец") у меня имеются формулы ({массивы}).
Я прочитал на форумах, что за вставку массивов отвечает не formula / formular1c1, а FormulaArray.
Растягивать нужно в "P3: последняя строка/столбец"
| Код |
|---|
'Нахожу последний столбец / строку: lColumnsCnt = wSh_Base_Sales.Cells(1, wSh_Base_Sales.Columns.Count).End(xlToLeft).Column lLastRow_Prod_Un_C = wSh_Base_Sales.Cells(Rows.Count, 13).End(xlUp).Row With wSh_Base_Sales 'Копирую формулы в весь диапозон .Range(.Cells(3, 16), .Cells(lLastRow_Prod_Un_C, lColumnsCnt)).Formula = .Range(.Cells(2, 16), .Cells(2, lColumnsCnt)).Formula For i = 16 To lColumnsCnt 'Преобразую формулы в массивы .Range(.Cells(3, i), .Cells(lLastRow_Prod_Un_C, i)).FormulaArray = .Range(.Cells(3, i), .Cells(lLastRow_Prod_Un_C, i)).Formula Next i .Calculate End With |
| Код |
|---|
wSh_Base_Sales.Range("P3:Q" & lLastRow_Prod_Un_C).Formula = wSh_Base_Sales.Range("P2:Q2").Formula
wSh_Base_Sales.Range("P3:P" & lLastRow_Prod_Un_C).FormulaArray = wSh_Base_Sales.Range("P3:P" & lLastRow_Prod_Un_C).FormulaR1C1
wSh_Base_Sales.Range("Q3:Q" & lLastRow_Prod_Un_C).FormulaArray = wSh_Base_Sales.Range("Q3:Q" & lLastRow_Prod_Un_C).FormulaR1C1 |
Ситуация с Range("A1:A2") и Range(Cells (1,1), Cells(1,2)) должна быть одинаковой (так везде в примерах приведено), но у меня это не работает и всегда выдает ошибку.
Изменено: - 24.10.2016 02:02:42