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

Задание 2. Изменение значений ячеек



Изменение значений ячеек.

Изменение значений ячеек в любом документе программными методами является эффективным и элегантным инструментом работы с Excel. Доступ к значению ячейки или диапазона может быть получен через свойство Value.

1) Для начала рассмотри простой макрос, работа которого будет состоять в том, что значение активной на момент запуска макроса ячейки будет устанавливаться равным 1 (единице). Программный код макроса SetValue () приведен в листинге 5:

Листинг 5: Программный код макроса SetValue ()

Public Sub SetValue()

ActiveCell.Value=1

End Sub

Код макроса состоит всего из одной команды ActiveCell.Value=1, с помощью которой свойству Value активной ячейки ActiveCell присваивается значение 1, см. рис. 12:

Рис. 12. Результат выполнения макроса SetValue(), задание 2, п. 1.

2) Чтобы присвоить значение 1, выделенному на момент запуска макроса диапазону ячеек используют ссылку SelectionValue. В листинге 6 приводится код макроса SetValue2(), которым единичное значение присваивается всем ячейкам выделенного диапазона:

Листинг 6: Программный код макроса SetValue2 ()

Public Sub SetValue2 ()

Selection.Value=1

End Sub

Дело в том, что если выделить диапазон ячеек и запустить макрос SetValue (), то единичное значение будет присвоено только левой верхней ячейке диапазона (проверьте сами это утверждение, выделив любой диапазон ячеек и выполнив запуск макроса SetValue ()). При использовании макроса SetValue2 () единицами заполняется весь диапазон.

Попробуйте самостоятельно выделить любой диапазон ячеек (можно вручную или с помощью запуска рассмотренных выше макросов RangeSelect1-4 (), а после выделения на экране соответствующего диапазона ячеек запустить макрос SetValue2 (). Примерный вариант выполнения задания приведен на рис. 13:

Рис. 13. Результат выполнения задания 2, п. 1 – 2.

Примечание 2: также можно использовать один макрос, который и выделяет указанные ячейки и заполняет их единицами. В приведенном на рис. 13 примере использован макрос:

Public Sub SetValue2()

Range("A1:C4,E4:G8,A9:C12,E10:G13").Select

Selection.Value = 1

End Sub

3) Теперь заполните ячейки С3:D5 значениями на 1 большими, чем значение в ячейке A1. Код данного макроса приведен в листинге 7:

Листинг 7: Программный код макроса SetValue3 ()

Public Sub SetValue3 ()

Range (“C3:D5”).Value = Range (“A1”).Value+1

End Sub

Для этого введите в ячейку A1 значение 3, выделите ячейку А6 и запустите макрос SetValue3 () на выполнение. Диапазон ячеек С3:D5 заполнится значениями 4, при этом ячейка A6 остается активной, см. рис. 14:

Рис. 14. Результат выполнения макроса SetValue3 (), задание 2, п. 3.

Таким образом, нам удалось заполнить диапазон ячеек, никак не влияя при этом на активную ячейку.

4) Совсем не обязательно, чтобы значениями ячеек были числа. Можно в рамках макроса присвоить ячейке или ячейкам текстовые значения. В листинге 8 приведен код макроса SetValue4 (), который производит эту операцию. Выполните самостоятельно запуск макроса SetValue4 (). Результат выполнения задания представлен на рис. 15.

Листинг 8: Программный код макроса SetValue4 ()

Public Sub SetValue4 ()

ActiveCell.Offset (1,0).Value = ”Юг”

ActiveCell.Offset (0,1).Value = ”Восток”

ActiveCell.Offset (-1,0).Value = ”Север”

Рис. 15. Результат выполнения макроса SetValue4 (), задание 2, п. 4.
ActiveCell.Offset (0,-1).Value = ”Запад”

End Sub

У данного макроса две особенности: 1- ячейкам присваиваются текстовые значения и 2 – использовано свойство Offset (). Свойству передаются два аргумента: отступ вдоль вертикали и отступ вдоль горизонтали. Эти целые числа указывают, на сколько ячеек следует сделать отступ от активной ячейки (или указанной через инструкцию Range)
по строкам и столбцам соответственно.





Дата публикования: 2014-11-03; Прочитано: 716 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



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