|
4 / 4 / 0
Регистрация: 12.06.2010
Сообщений: 18
|
|
Работа процедуры с ячейками таблицы13.06.2010, 17:48. Показов 27419. Ответов 9
Метки нет (Все метки)
Ребята помогите выполнить задачу!
Откройте новую рабочую книгу. Введите следующие значения в первый лист рабо¬чей книги. Ячейки Значения ———————————————————— А1 Товар А2:А6 Названия каких-либо товаров B1 Цена B2 15 B4 3 B5 7 B6 9 Создайте процедуру с именем СнижениеЦен. Процедура должна уменьшить значения всех ячеек из диапазона В2:В6 на 5. Если цена будет меньше или равна нулю, вы¬делите ее и название товара красным полужирным шрифтом. Также в этом случае (цена меньше или равна нулю) процедура должна вывести окно сообщения с соответ¬ствующим текстом предупреждения. Выполните процедуру.
0
|
|
| 13.06.2010, 17:48 | |
|
Ответы с готовыми решениями:
9
Работа с ячейками таблицы Word
Расстояние между ячейками таблицы. |
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
|
| 13.06.2010, 18:11 | |
|
serb,
а к какой это теме по VBA относится (что вы изучали). И почему нет в задании B3?
0
|
|
|
4 / 4 / 0
Регистрация: 12.06.2010
Сообщений: 18
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 13.06.2010, 22:27 [ТС] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Объект Range
Объект Range (Диапазон), наиболее часто используемый в процедурах VBA объект Excel. Цель: Изучить различные методы работы с диапозонами. Задачи: 1. Рассмотреть роль объекта Range в VBA 2. Освоить использование оператора With 3. Освоить использование оператора For Each 4. Выполнить анализ процедур, использующих оператор Range Описание объекта Range Поскольку вы создаете приложение для Excel, то естественно ваше внимание к ячейкам рабочего листа. В VBA ячейки трактуются как объект Range В качестве объекта Range могут выступать: отдельная ячейка; выделенный диапазон ячеек; несколько выделенных диапазонов ячеек (т.е. совокупность несмежных диапазонов); строка и столбец; трехмерный диапазон (т.е. состоящий из диапазонов, расположенных на разных рабочих листах). Свойства объекта Range Изучение любого объекта — это, прежде всего изучение его свойств и методов. Среди всех свойств объекта Range выделим следующие. Address (Адрес) — возвращает текущее положение диапазона. Count (Счет) — возвращает количество ячеек в диапазоне. Formula (Формула) - возвращает формулу, по которой вычисляется значение, отображаемое в ячейке. Offset (Смещение) — возвращает величину смещения одного диапазона относительно другого. Resize (Изменение размеров) — позволяет изменять текущее выделение диа¬пазона. Value (Значение) — возвращает значения ячеек, составляющих диапазон. Чтобы поэкспериментировать со свойствами объекта Range, создадим процедуру Сначала закройте все открытые рабочие книги, а затем откройте новую рабочую книгу. Будем считать, что текущий рабочий лист у вас Лист1. 1. Введите число 100 в ячейку В1, число 200 — в ячейку В2 и 300 — в ячейку ВЗ. 2. В ячейку В4 введите формулу =СУММ (В1: ВЗ). 3. Нажмите комбинацию клавиш <Alt+Fll>, чтобы открыть редактор Visual Basic, и вставьте модуль в текущую рабочую книгу. 4. Создайте новую процедуру и назовите ее СвойстваДиапазона. 5. Введите код процедуры
7. Щелкните на кнопке ОК. Следующее окно сообщения покажет значение, отображаемое в ячейке В4. 8. Щелкните на кнопке ОК. Последнее окно покажет формулу, содержащуюся в ячейке В4. (Обратите внимание, что хотя формула в ячейке В4 введена русскими буквами, процедура корректно ее обработала и преобразовала в формулу англоязычной версии Excel) 9. Щелкните на кнопке ОК для закрытия окна сообщения. Рассмотрим эту процедуру подробнее. Процедура начинается с активизации ячейки A1 (т.е. установки на ней табличного курсора):
имя_диапазона..Offset(смещ_строк, смещ_ столбцов) Аргументы смещ_строк и смещ_столбцов задают направление перемещения табличного курсора. В нашей процедуре оба аргумента принимают значение 2, что позволяет перейти из ячейки А1 в ячейку С3. Последние два оператора процедуры с помощью окон сообщения отображают зна¬чение и формулу ячейки В4:
Методы объекта Range Объект Range имеет много методов, среди которых следующие. Activate (Активизировать) — активизирует (выделяет) диапазон. Clear (Очистить) — очищает содержимое диапазона. Copy (Копировать) — копирует содержимое диапазона в буфер обмена. Cut (Вырезать) — перемещает содержимое диапазона в буфер обмена. PasteSpecial (Специальная вставка) — вставляет содержимое буфера обмена в диапазон, используя при этом различные аргументы. Select (Выделить) — выделяет диапазон. Использование оператора With Изучим несколько конст¬рукций языка VBA, значительно облегчающих работу с объектами. Одна из задач, которую часто придется решать с помощью VBA, - задание различных параметров форматирова¬ния объекта. В листинге 10.1 показан пример форматирования диапазона ячеек. Листинг 10.1. Пример форматирования диапазона
Листинг 10.2. Пример использования оператора With
With объект [опера торы] End With Объект — это тот объект, чьи свойства и методы указаны в секции операторы. Каждая строка в этой секции начинается с точки, как показано в листинге 10.2. Операторы With можно вкладывать друг в друга. В нашем листинге оператор With объекта Font вложен в оператор With объекта Range. В листинге 10.3 приведен другой пример использования оператора With. Листинг 10.3. Оператор With, содержащий оператор и метод
Если оператор With используется для выполнения нескольких операторов для од¬ного объекта, то оператор For Each применяется для выполнения одного и того же набора операторов для нескольких объектов. Этот оператор дает возможность повто¬рить набор операторов для всех элементов коллекции. Оператор For Each можно применять к массивам Оператор For Each имеет следующий синтаксис: For Each элемент In группа [Опера торы] [Exit For] [Опера торы] Next Отметим, что синтаксис предусматривает выражение Exit For. Так же, как и в других подобных выражениях Exit, для организации досрочного выхода из оператора For Each обычно применяется оператор If. В листинге 10.4 оператор For Each применяется для изменения значений всех ячеек диапазона. Листинг 10.4. Пример использования оператора For Each____
В первом примере выполняется форматирование определенных строк диапазона. По¬добная операция часто применяется перед выводом на печать различных списков. Предпо¬ложим, что первая строка вашего рабочего листа содержит заголовки столбцов. Необходимо сделать полужирным шрифт в каждой второй строке. Процедура, выполняющая эту задачу, представлена в листинге 10.5. Листинг 10.5. Применение объекта Row и оператора цикла
Очевиден недостаток приведенной выше процедуры: здесь заранее указывается размер диапазона. На практике размер диапазона может часто изменяться, например в результате импорта данных из какой-либо базы данных или в результате внесения новых либо удаления старых данных. Другими словами, в процедуре не должен быть указан конкретный размер диапазона. Код листинга 10.6 выполняет выбор диапазона без указания его размера и местоположения. Листинг 10.6. Выделение диапазона
Пример следующей процедуры показывает выполнение операции "копировать и вставить". Код листинга 10.7 копирует любой заранее выделенный объект в буфер обмена, а затем вставляет его в новое положение на рабочем листе. Листинг 10.7. Копирование и вставка диапазонов
2
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
|
| 13.06.2010, 22:29 | |
|
0
|
|
|
4 / 4 / 0
Регистрация: 12.06.2010
Сообщений: 18
|
|
| 13.06.2010, 22:45 [ТС] | |
|
А1 Товар
А2:А6 Названия каких-либо товаров B1 Цена B2 15 B3 5 B4 3 B5 7 B6 9
0
|
|
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
||||||
| 14.06.2010, 19:09 | ||||||
Сообщение было отмечено SatanaXIII как решение
Решение
serb,
1
|
||||||
|
1 / 1 / 0
Регистрация: 14.06.2011
Сообщений: 71
|
|
| 05.07.2011, 06:55 | |
|
как поместить таблицу excel внутри процедуры или функции
и использовать ее для решения(задачи)
0
|
|
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 2
|
|
| 25.04.2016, 17:22 | |
|
Возможно ли в VBA обращение к заголовку именованного диапазона?
Задача следующая: Нужно найти номер столбца заголовка по его имени("количество") В ячейке это выглядит так: =ПОИСКПОЗ("Количество";Фрукты[#Заголовки];0) это работает но в VBA не может распознать диапазон Range("Фрукты[#Заголовки]") Код VBA: Sub Кнопка1_Щелчок() Имя_диапазона = "Фрукты" Искомое = "Яблоко" Set r = Range(Имя_диапазона + "[#Заголовки]") 'как задать диапазон из заголовка в таблице Фрукты?' здесь ошибка номер_заголовка = WorksheetFunction.Match("Количество", "Экспедиторы[#Заголовки]", 0) значение = WorksheetFunction.VLookup(Искомое, Range(Имя_диапазона), номер_заголовка, False) Set r = Nothing End Sub
0
|
|
|
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|||||||||||||||||
| 25.04.2016, 21:40 | |||||||||||||||||
1
|
|||||||||||||||||
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 2
|
||
| 26.04.2016, 08:44 | ||
|
Range("Фрукты[#Headers]")= Range("Фрукты[#Заголовки]") Огромное спасибо.
0
|
||
| 26.04.2016, 08:44 | |
|
Помогаю со студенческими работами здесь
10
Сортировка таблицы с объединенными ячейками
про Tаble1 - работаем с ячейками таблицы Данные из таблицы с объединенными ячейками в Массив Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|