![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Ввод программными методами формул в ячейки.
1) Часто возникает ситуация, когда необходимо внести в ячейку документа формулу, а не просто некоторое значение.
В Excel это довольно простая задача. Её решение подразумевает обращение к свойству Formula объекта Range. Например, для ввода в ячейку B3 формулы = А3^2, используем в программном коде инструкцию Range (“B3”). Formula = “=A3^2”. Эта команда формирует программный код макроса CellFormula (), представленного в листинге 12:
Листинг 12: Программный код макроса CellFormula ()
Public Sub CellFormula ()
Range (“B3”).Formula = “=A3^2”
End Sub
Для проверки работы макроса введите в ячейку А3 значение 5, после чего запустите макрос CellFormula (). Результат выполнения макроса представлен на рис. 19:
Рис. 19. Результат выполнения макроса CellFormula (). задание 4, п.1.
2) Аналогично ячейки заполняются формулами с встроенными функциями Excel. Например, командой Range (“B4”).Formula = “=SIN(A4)” в ячейку B4 вводится формула =SIN(A4). Код соответствующего макроса приводится
в листинге 13:
Листинг 13: Программный код макроса CellFormula2 ()
Public Sub CellFormula2 ()
Range (“B4”).Formula = “=SIN(A4)”
End Sub
Выполните самостоятельно макрос CellFormula2 (). Результат выполнения макроса приведен на рис. 20:
Рис. 20. Результат выполнения макроса CellFormula2 (). задание 4, п.2.
3) Проблемы возникают, когда приходится вводить формулы с русскоязычным синтаксисом. С первого раза такие формулы программными методами не обрабатываются корректно. Поэтому приходится выделять ячейку и нажимать клавишу Enter. Проблема решается, если вместо свойства Formula воспользоваться свойством FormulaLocal. Пример макроса, в котором реализуется данный принцип, приведен в листинге 14:
Листинг 14: Программный код макроса CellFormula3 ()
Public Sub CellFormula2 ()
Range (“B5”).FormulaLocal = “=СУММ(A3:B4)”
End Sub
Данный макрос вставляет функцию вычисления суммы ячеек A3:B4. Проверьте самостоятельно работу данного макроса. Результат выполнения макроса приведен на рис. 21:
Рис. 21. Результат выполнения макроса CellFormula3 (). задание 4, п.3.
4) Существует возможность вводить формулы массива. Для этого используется свойство FormulaArray. Этому свойству
в качестве значения присваивается формула, однако вводится она системой в формате формулы массива. Пример простого макроса для ввода формулы массива приводится в листинге 15:
Листинг 15: Программный код макроса CellFormula4 ()
Public Sub CellFormula4 ()
Range (“C3:C5”).FormulaArray = “=TAN(B3:B5)”
End Sub
Выполните данный макрос. Результат выполнения макроса представлен на рис. 22:
Рис. 22. Результат выполнения макроса CellFormula4 (). задание 4, п.4.
5) Во всех предыдущих случаях использовались абсолютные ссылки. На практике это не всегда бывает удобно. Формула с относительными ссылками вводится через свойство FormulaR1C1. В листинге 16 приведен код макроса, которым
в активную ячейку вводится формула, согласно которой значение ячейки вычисляется как единица, деленная на сумму единицы и значения соседней ячейки слева вверху от активной.
Листинг 16: Программный код макроса CellFormula5 ()
Public Sub CellFormula5 ()
ActiveCell.FormulaR1C1 = “=1/(1+R[-1]C[-1])”
End Sub
Выполните самостоятельно данный макрос. Результат выполнения макроса CellFormula5 представлен на рис. 23:
Рис. 23. Результат выполнения макроса CellFormula5 (). задание 4, п.5.
Относительная ссылка на ячейку вводится в формате R1C1. Перед запуском активной была ячейка С6. После выполнения макроса в эту ячейку введена формула = 1/(1+B5). Для ввода формул с относительными ссылками
с русскоязычным синтаксисом используют свойство FormulaR1C1Local.
Дата публикования: 2014-11-03; Прочитано: 616 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!