Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Задание 4. Ввод программными методами формул в ячейки



Ввод программными методами формул в ячейки.

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; Прочитано: 598 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...