Листинг 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.

Задание 5.

Использование встроенных функций Excel.

В VBA достаточно много встроенных функций, однако достаточно эффективно можно использовать
и встроенные функции Excel. В этом случае, функции Excel выступают в качестве методов объекта Application. Причем
в русскоязычной версии приложения Excel в коде VBA указываются англоязычные названия функций. Рассмотрим соответствующий пример.

1) Создайте макрос, который вычисляет сумму значений ячеек диапазона, выделенного на момент запуска макроса.
Для вычисления суммы значений ячеек воспользуйтесь встроенной функцией Excel СУММ () (англоязычный вариант - функция SUM ()). Назовем этот макрос ExcelFunc (). Программный код макроса приведен в листинге 17:



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: