


#7 — Обращение к WorkBooks и Worksheets
Привет всем обучающимся! Представленный видеоурок посвящен основным понятиям макросов. Сегодня мы продолжаем разговор про объектную модель и поговорим конкретно про такие объекты как WorkBooks – книга Excel и Worksheets – листы книги. Открывайте ваш Excel и приступайте к работе.
Получившийся макрос:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Sub k_для_Workbooks() ' ' Обращаемся к активному Excel-файлу ActiveWorkbook.Name ' Debug.Print напишет результат команды в окно Immediate ' MsgBox отобразит результат команды в всплывающем окне ' Обращаемся к Excel-файлу, в котором записан макрос Debug.Print ThisWorkbook.Name ' Обращаемся к Excel-файлу по имени Workbooks("Book1.xlsx").Activate ' Обращаемся к Excel-файлу по номеру (в порядке открытия) Debug.Print ThisWorkbooks(1).Name ' Определяем общее количество открытых Excel-файлов Debug.Print ThisWorkbooks.Count ' ВНИМАНИЕ! Номер в скобках должен соответствовать числу файлов MsgBox Workbooks(4).Name End Sub |
Давайте разберемся, как в макросе используется объект Workbooks. У нас тут есть
- 1. ActiveWorkbook – активный excel-файл,
- 2. ThisWorkbook – excel-файл, в котором написан данный макрос,
- 3. Workbooks(«Имя.расширение») – элемент коллекции по имени файла,
- 4. ThisWorkbooks(Номер) – элемент коллекции по номеру файла (в порядке открытия excel-файлов), где номер должен соответствовать числу книг.
Этот макрос был направлен на работу с объектом Workbooks. Теперь напишем макрос, связанный с Worksheets.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Sub Примеры_для_Worksheets() ' ' Определяем имя активного листа MsgBox ActiveSheet.Name ' Debug.Print напишет результат команды в окно Immediate ' MsgBox отобразит результат команды в всплывающем окне ' Обращаемся к листу по имени (пользовательскому) MsgBox Worksheets("Первый лист").Rows.Count ' Обращаемся к листу по порядковому номеру Debug.Print Worksheets(2).Name ' Обращаемся к листу по имени("системному") MsgBox Лист1.Name ' Используем связку Книга-Лист MsgBox ActiveWorkbook.Worksheets(2).Name End Sub |
Конечно, в коде макроса уже даны подробные комментарии, но все же лучше еще детальнее прокомментировать отдельные моменты:
- 1. MsgBox ActiveSheet.Name — во всплывающем окне увидим название активного листа,
- 2. Для обращения к конкретному листу указываем Worksheets(«Первый лист»),
- 3. MsgBox Worksheets(«Первый лист»).Rows.Count — в всплывающем окне увидим количество строк, имеющихся на листе «Первый лист»,
- 4. Debug.Print Worksheets(2).Name — вывод в окно Immediate имя листа2 в активной книге,
- 5. MsgBox Лист1.Name — во всплывающем окне увидим название листа по системному имени активного листа (Например, запись Лист1 (Первый лист) означает: системное имя – Лист1, пользовательское имя – Первый лист), в той excel-книге, где написан макрос,
- 6. MsgBox ActiveWorkbook.Worksheets(2).Name — во всплывающем окне увидим, название второго по счету листа в нашей активной книге.
Небольшая рекомендация:
Тратьте меньше времени для написания кода: пишете системное имя, например Лист1, ставите точку(.) и редактор VBA выводит подсказки для выбора объектов, свойств и методов.
Итак, на этом занятии вы познакомитесь подробнее с объектами Workbooks и Worksheets, узнаете некоторые хитрости их использования и напишете два полноценных макроса. На этом видеоурок закончится. Пишите ваши вопросы под этим видео, будем рады вам помочь. До новых встреч!
Приятного всем просмотра! Учитесь с удовольствием! Всегда ваш LoftBlog.
Оставь комментарий!