Все добрый день ...
Необходимо увеличить значение каждой ячейки в столбце "Номер" на 10, с использованием функции VBA как пользовательской формулы на листе. Результат должен быть записан в соответствующей ячейке (т.е. напротив ячейке исходного значения) в столбце "Формула".
Т.е. должно быть вот так:
Написал функцию VBА, увеличения значения ячеек столбца "Номер" на 10 и помещения результата вычисления в столбец "Формула":
При этом ячейка H3 является именованной с тем же именем что и находящейся в ней текст, т.е. "Номер".
На вход функции и поступает имя этой ячейки. Функция возвращает увеличенное значение номер.
Код |
---|
Function РасчетФормулы(Ячейка As Range) As Integer
РасчетФормулы = Ячейка.Offset(ActiveCell.Row - Ячейка.Row, 0).Value + 10
End Function |
Данная функция "ручками" вписывается в каждую ячейку столбца "Формула" и мы получаем тот результат, который ожидаем.
Но если взять и протянуть формулу из ячейки I8, до конца столбца, то получим следующий результат:
Проанализировав ситуация, пришел к выводу, что в этом случае активная ячейка не меняется и остается по адресу I8, который и используется для расчета формулы. Таким образом результат формулы один и тот же: 15. Если бы можно было в формуле использовать не активную ячейку, а текущую ячейку, в которую Excel вставляет на данный момент формулу при протяжке, то, возможно проблема бы решилась. Прошу подсказать как мне правильно написать формулу.