Страницы: 1
RSS
Как записать высчитанный макросом диапазон в формулу Excel?
 
Доброго времени суток!

Есть  макрос, который высчитывает начальную и конечную строку столбца (FinalRow, FinalColumn). В конечную строку в Excel нужно вставить формулу вида СУММ(А1:A34), где цифры и есть высчитанный макросом строки. Как это сделать макросом? Спасибо!
 
А зачем формула? Макросом и считайте.
 
А зачем макросом искать? Пропишите всё в формуле.
 
Цитата
Юрий М написал:
А зачем формула?
Цитата
gling написал:
А зачем макросом
)))
 
Дело в том, что диапазон, который нужно суммировать, постоянно меняется. Если записывать формулу средствами Excel, она получится очень громоздкой. Но при этом в ячейке должно отображаться, с какой строки по какую идет сумма (то есть просто вбить макросом в эту клетку полученное значение суммы нельзя).
 
Цитата
Griver написал:
вбить макросом в эту клетку полученное значение суммы нельзя
А формулой можно? Если известно, в какую ячейку нужно вставить формулу, то почему нельзя в эту же ячейку вставить посчитанное значение?
 
Такое требование. На листе должна быть наглядность, чтобы, допустим, человек со стороны, открывший его, видел, суммой какого диапазона получилось значение.
 
Код
Cells(FinalRow + 1, "A").Formula = "=Sum(A1:A" & FinalRow & ")" & ""
Изменено: Kuzmich - 09.10.2019 00:01:06
 
Цитата
Griver написал:
получится очень громоздкой
Вы знаете эту формулу?
Формула последней заполненной строки в диапазоне
Код
=СУММПРОИЗВ(МАКС((A1:P21>0)*СТРОКА(A1:P21)))

Формула последней заполненной ячейки в столбце А

Код
=ПОИСКПОЗ(9^9;A:A;1)

Был бы файл пример, может что то и предложили, более близкое к решению вашей задачи, но не вами придуманным способом.

 
Цитата
Griver написал:
Есть  макрос, который высчитывает начальную и конечную строку столбца (FinalRow, FinalColumn)
ободряющее начало
кто из этих двух FinalRow, FinalColumn начальная строка?
что у Вас есть еще?
и, собственно, что нужно?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Необходимо, чтобы макрос, зная номер начальной и конечной строки в виде цифры, как-то преобразовывал это в формат "=СУММ(А3:А45)" и вставлял это в виде именно такой формулы в заданную ячейку.  
 
Griver, как в макросе определить диапазон Range -Знаете? Определил взяли .address с параметрами нужными , получили ваши  А3:А45
Код
Cells(FinalRow + 1, "A").Formula = "=Sum(" & range(cells(3,1),Cells(FinalRow,1)).Address(0,0) & ")"

Или использовать R1C1 стиль
Код
Cells(FinalRow + 1, "A").FormulaR1C1 ="=Sum(R3C1:R" & FinalRow & "C1)"
Изменено: БМВ - 09.10.2019 09:39:27
По вопросам из тем форума, личку не читаю.
 
В качестве примера:
Код
Sub aaaa()
Dim sRow&, lRow&
With ActiveSheet
  sRow = Intersect(.Columns(1), .UsedRange).Row
  lRow = .Cells(.Rows.Count, "A").End(xlUp).Row
  .[B1].Formula = "=Sum(A" & sRow & ":A" & lRow & ")"
End With
End Sub
Изменено: Anchoret - 09.10.2019 09:36:09
 
БМВ и всем остальным, спасибо! Через Address то, что нужно было. :)
Страницы: 1
Наверх