Как установить активный лист в excel

Метод Worksheet.Activate (Excel)

Делает текущий лист активным листом.

Синтаксис

выражения. Активация

выражение Переменная, представляюная объект «Таблица».

Заметки

Вызов этого метода эквивалентен выбору вкладки листа.

Пример

В этом примере активируется Sheet1.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

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

Прежде чем напечатать книгу Excel, требуется точно установить, какую информацию выводить на печать. Например, если в Вашей книге содержится много листов, необходимо определить, печатать всю книгу или только активные листы. Часто возникает необходимость распечатать только выделенный фрагмент книги.

Печать активных листов в Excel

Листы считаются активными, когда они выделены.

  1. Выделите лист, который требуется напечатать. Чтобы напечатать несколько листов, выберите первый лист, затем, удерживая клавишу Ctrl на клавиатуре, добавьте остальные.
  2. Перейдите к панели Печать.
  3. Из выпадающего меню Область печати выберите пункт Напечатать активные листы.Область печати в Excel
  4. Нажмите кнопку Печать.Область печати в Excel

Печать всей книги в Excel

  1. Перейдите к панели Печать.
  2. Из выпадающего меню Область печати выберите пункт Напечатать всю книгу.Область печати в Excel
  3. Нажмите кнопку Печать.Область печати в Excel

Печать выделенного фрагмента в Excel

В качестве примера выведем на печать фрагмент таблицы Excel, связанный с футбольными матчами, которые пройдут в июле.

  1. Выделите ячейки, которые необходимо напечатать.Область печати в Excel
  2. Перейдите к панели Печать.
  3. Из выпадающего меню Область печати выберите пункт Напечатать выделенный фрагмент.Область печати в Excel
  4. В области предварительного просмотра появится выделенный фрагмент.Область печати в Excel
  5. Нажмите кнопку Печать, чтобы распечатать выделенный фрагмент.Область печати в Excel

Чтобы заранее определиться с областью печати, ее можно предварительно задать. Для этого выделите требуемый диапазон ячеек, перейдите на вкладку Разметка страницы, нажмите на команду Область печати и из выпадающего меню выберите Задать.

Редактирование ячеек

Если вам необходимо ввести одни и те же данные сразу на несколько листов, то выполните следующие действия (на примере книги с 3 листами):

  1. Выделите все нужные листы с зажатой клавишей Shift или CtrlShift выделяем все листы от первого до последнего, а с Ctrl выделяем несмежные листы).
  2. Обратите внимание, что в заголовке Excel отображается текст: [Группа]. Это означает, что изменения будут проводиться на одновременно на всех выделенных листах.
  3. Вводим на активном листе необходимые данные (текст, числа, формулы и прочее).
  4. Посмотрите, на всех выделенных листах — тоже появились введенные данные. Т.е. все действия, произведенные на активном листе повторяются на других выделенных листах.

Важный момент в том, что формулы на других листах будут ссылаться на тот лист, в котором написаны.

Форматирование и настройка печати

Аналогичным способом можно изменять форматирование ячеек и устанавливать настройки печати сразу на несколько выбранных листов.

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

10.5 Коллекция Sheets и объект Worksheet, их свойства и методы

Объект Excel.Worksheet, программное создание, обнаружение, удаление листа Excel средствами VBA, свойства, методы и события объекта Excel.Worksheet

В Word ниже объекта Application и Document начинались уже объекты непосредственно для работы с текстом — Selection, Range и т.п. В Excel между объектом рабочей книги и ячейками есть еще один промежуточный объект — объект Worksheet (лист). Объекты Worksheet в книге объединены в коллекцию Sheets.

Чаще всего для ввода данных в Excel (напрямую или из базы данных) нам потребуется в первую очередь определиться с листом, на который пойдет ввод данных — либо просто выбрать его, либо вначале создать, а потом выбрать.

Процесс создания выглядит очень просто:

Dim oExcel As New Excel.Application ‘Запускаем Excel

oExcel.Visible = True ‘Делаем его видимым

Dim oWbk As Excel.Workbook

Set oWbk = oExcel.Workbooks.Add () ‘Создаем новую книгу

Dim oSheet As Excel.Worksheet

Set oSheet = oWbk.Worksheets.Add() ‘ Создаем новый лист

oSheet.Name = «Новый лист» ‘Присваиваем ему имя «Новый лист»

Метод Add() для коллекции Worksheets принимает несколько необязательных параметров, главная задача которых — определить, между какими существующими листами будет вставлен новый лист. Если ничего не указывать, то новый лист будет помещен самым первым.

Часто встречается и другая задача — просто найти нужный лист среди листов книги, например, если мы открыли существующую книгу. Сделать это очень просто, поскольку коллекция Worksheets умеет работать с именами листов. Ниже приведен пример, в котором мы так же запускаем Excel и создаем новую книгу, но при этом находим лист с именем «Лист1» и переименовываем его в «Новый лист»:

Dim oExcel As New Excel.Application ‘Запускаем Excel

oExcel.Visible = True ‘Делаем его видимым

Dim oWbk As Excel.Workbook

Set oWbk = oExcel.Workbooks.Add() ‘Создаем новую книгу

Dim oSheet As Excel.Worksheet

Set oSheet = oWbk.Worksheets.Item(«Лист 1») ‘ Находим Лист1

oSheet.Name = «Новый лист» ‘Присваиваем ему имя «Новый лист»

Обратите внимание, что в английской версии Excel этот код, скорее всего, не пройдет, поскольку листы там по умолчанию называются «Sheet1», «Sheet2» и т.п. Если вы в вашем коде используете имена листов по умолчанию и при этом вашей программе придется работать на компьютерах с разноязычными версиями Excel, обязательно предусмотрите дополнительные проверки или просто используйте номера листов вместо их имен.

У коллекции Sheets, помимо привычных нам свойств и методов ( Count, Item, Add(), Delete()) и свойств и методов, которые удобнее применять для объекта Worksheet ( Visible(), Copy(), Move(), PrintOut(), PrintPreview(), Select()) — поскольку все равно указывать конкретный лист — есть и один специфический метод FillAcrossSheets() — скопировать объект диапазона Range (варианты: полностью, только содержимое, только оформление) во все листы данной книги.

У объекта Worksheet — множество важных свойств и методов:

  • Cells — одно из наиболее часто используемых свойств объекта Worksheet. Работает точно так же, как и рассмотренное выше одноименное свойство объекта Application — за исключением того, что вам больше не нужно ограничиваться только активным листом. Аналогично работают свойства Columns и Rows.
  • EnableCalculation — возможность отключить автоматический пересчет значений ячеек в книге.
  • EnableSelection — возможность запретить выделять на листе: все, ничего не запрещать, или разрешить выделять только незаблокированные ячейки.
  • Next — возможность получить ссылку на следующий лист в книге. Previous — то же самое для предыдущего листа.
  • PageSetup — как и в Word, возможность получить объект PageSetup, при помощи которого можно настроить те же параметры, что и через меню Файл ->Параметры страницы.
  • свойство Protection позволяет получить объект Protection, при помощи которого можно запретить пользователю вносить изменения в лист Excel. Настройке параметров защиты также служат и другие свойства, названия которых начинаются на Protection.
  • QueryTables — исключительно важное свойство. Оно возвращает коллекцию QueryTables — набор объектов QueryTable, которые, в свою очередь, представляют данные, полученные из внешних источников (как правило, из баз данных).
  • Range — самое важное свойство объекта Worksheet. Возвращает объект Range (диапазон ячеек), который в объектной модели Excel занимает примерно такое же место, что и одноименный объект в объектной модели Word. Этот объект будет рассматриваться ниже.
  • Type — возможность определить тип данного листа. Обычно используются два типа: xlWorksheet (обычный лист) и xlChart (диаграмма).
  • UsedRange — возвращает объект Range, представляющий собой прямоугольную область, включающую все непустые ячейки. Удобно для целей копирования или форматирования.
  • Visible — возможность спрятать лист с глаз пользователя (например, если он используется для служебных целей).

Некоторые важные методы объекта Worksheet:

  • методы Activate() , Calculate(), Copy(), Paste(), Delete(), Move(), Evaluate(), Select(), SaveAs(), PrintOut(), PrintPreview(), Protect(), Unprotect()нам уже знакомы . Отличие заключается только в том, что теперь эти методы могут применяться для выбранного вами листа.
  • метод PivotTables() возвращает коллекцию очень интересных объектов PivotTable (сводная таблица), которые будут рассматриваться ниже;
  • метод Scenarios() возвращает коллекцию Scenarios, состоящую из объектов Scenario (сценарии). Сценарии — это именованные наборы вводных данных, которые можно использовать для проверки различных сценариев (разные суммы продаж, уровни налогов, расходов и т.п.)
  • SetBackgroundPicture() — возможность назначить листу фоновое изображение (естественно, желательно, чтобы оно было полупрозрачное — «водяной знак», иначе на его фоне будет трудно читать текст в ячейках).
  • ShowAllData() — показать все скрытые и отфильтрованные данные на листе.

Самое важное событие объекта Worksheet — это, конечно, Change. Существует множество практических задач, когда изменение пользователем значения ячейки должно приводить к изменению значения в ячейке другого листа/рабочей книги Excel или даже в базе данных. Другая ситуация, в которой используется это события — сложная проверка вводимого пользователем значения (например, опять-таки через обращение к базе данных). Эта событийная процедура работает со специальным параметром Target — то есть объектом Range, представляющим изменившуюся ячейку. При помощи свойств и методов объекта Range вы можете получить информацию об изменившемся значении, столбце и строке, в котором произошло изменение и т.п.

У объекта Worksheet есть еще два очень удобных события (их сильно не хватает объекту Document в Word). Это — события BeforeRightClick() и BeforeDoubleClick(). Как понятно из названия, первое событие позволяет перехватывать щелчок правой кнопкой мыши по любому месту в листе, а второе — двойной щелчок мышью. При помощи этих событий вы можете назначить свою реакцию (открытие контекстных меню, выдачу предупреждающих сообщений, переход в другой режим работы и т.п.) на действия пользователя.

Широко известно, что в одной книге (файле) Excel имеются по умолчанию три листа, между которыми можно переключатся. Тем самым возникает возможность создавать в одном файле несколько связанных документов. Но, что делать, если предустановленного количества таких дополнительных вкладок не хватает? Давайте разберемся, как добавить новый элемент в Экселе.

Способы добавления

Как переключатся между листами, знает большинство пользователей. Для этого нужно кликнуть по одному из их наименований, которые расположены над строкой состояния в нижней левой части экрана.

А вот как добавлять листы знает не каждый. Некоторые пользователи даже не в курсе, что существует подобная возможность. Давайте разберемся, как это сделать различными способами.

Способ 1: использования кнопки

Наиболее часто применяемый вариант добавления – это использование кнопки, которая называется «Вставить лист». Это связанно с тем, что данный вариант наиболее интуитивно понятный из всех имеющихся. Расположена кнопка добавления над строкой состояния слева от перечня уже имеющихся в документе элементов.

    Для добавления листа просто кликаем по указанной выше кнопке.

Способ 2: контекстное меню

Существует возможность вставить новый элемент с помощью контекстного меню.

    Кликаем правой кнопкой мыши по любому из уже имеющихся в книге листов. В появившемся контекстном меню выбираем пункт «Вставить…».

  • Открывается новое окно. В нём нам нужно будет выбрать, что именно мы хотим вставить. Выбираем элемент «Лист». Жмем на кнопку «OK».
  • После этого, новый лист будет добавлен в список уже имеющихся элементов над строкой состояния.

    Способ 3: инструмент на ленте

    Ещё одна возможность создать новый лист предполагает использование инструментов, которые размещены на ленте.

    Находясь во вкладке «Главная» кликаем по пиктограмме в виде перевернутого треугольника около кнопки «Вставить», которая размещена на ленте в блоке инструментов «Ячейки». В появившемся меню выбираем пункт «Вставить лист».

    После этих действий вставка элемента будет выполнена.

    Способ 4: горячие клавиши

    Также для выполнения данной задачи можно применить, так называемые, горячие клавиши. Просто набираем на клавиатуре сочетание клавиш Shift+F11. Новый лист не просто будет добавлен, а ещё и станет активным. То есть, сразу после добавления пользователь автоматически перейдет на него.

    Как видим, существует четыре совершенно разных варианта добавления нового листа в книгу Эксель. Каждый пользователь выбирает тот путь, который ему кажется более удобным, так как функциональной разницы между вариантами нет. Конечно, быстрее и удобнее всего использовать для этих целей горячие клавиши, но не каждый человек может удержать комбинацию в голове, а поэтому большинством пользователей применяются интуитивно более понятные способы добавления.

    Отблагодарите автора, поделитесь статьей в социальных сетях.

       Renat11111

    16.09.10 — 11:53

    с утра туплю. Хочу установить активный лист excel при открытии… чет не получается… нашел в нете setActiveSheetIndex не работает. подскажет кто?

       skunk

    1 — 16.09.10 — 11:55

    Sheets(«Лист2»).Select

       Fragster

    2 — 16.09.10 — 11:56

    а …ActiveSheet = …Sheets(номер) не работает? а зачем его вообще устанавливать?

       Aprobator

    3 — 16.09.10 — 11:59

    (0) зачем? Эксель визуально что ли открываем?

       Renat11111

    4 — 16.09.10 — 11:59

    (2) надо потому что загрузка всегда идет с первого листа. а на остальных записи какие то тупые делают.

       Renat11111

    5 — 16.09.10 — 12:01

    чет торможу как вот после этого сделать активным первый Лист. строчку чиркните кому не лень?

    Ексель = Новый  COMОбъект(«Excel.Application»);

       Попытка

           Файл = Ексель.Application.Workbooks.Open(Диалог.ПолноеИмяФайла);    

       Исключение

           Сообщить(ОписаниеОшибки(),СтатусСообщения.Важное);

           Возврат;

       КонецПопытки;

       Fatum1980

    6 — 16.09.10 — 12:03

    НашЛист = Файл.Sheets(1); //Устанавливаем нужный лист  — лист №1

       Renat11111

    7 — 16.09.10 — 12:03

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

       Fragster

    8 — 16.09.10 — 12:04

    (4) бугагагггаааааааа

       Fragster

    9 — 16.09.10 — 12:05

    Лист = файл.ActiveSheet замени на Лист = файл.Sheets(номер листа)

       Renat11111

    10 — 16.09.10 — 12:08

    (9) так если че сделаю просто кучу кода менять надо будет там строк 300… например:

    //Файл.ActiveSheet = Файл.Sheets(1);

       ТабЧасть = Часть1;

       Для каждого ТекСтр Из ТабЧасть Цикл

           НомСтроки = ТекСтр.ОбщаяИнформацияОВкладах.Код;

           ТекСтр.ПолноеНаименованиеИнформации = Файл.ActiveSheet.Cells(НомСтроки,2).Value;    

           Если Файл.ActiveSheet.Cells(НомСтроки,3).Value <> Неопределено Тогда

               ТекСтр.Сумма                        = ВернутьЧисло(Файл.ActiveSheet.Cells(НомСтроки,3).Value);    

           КонецЕсли;

           Если Файл.ActiveSheet.Cells(НомСтроки,4).Value <> Неопределено Тогда

               ТекСтр.КоличествоВкладов            = ВернутьЧисло(Файл.ActiveSheet.Cells(НомСтроки,4).Value);    

           КонецЕсли;

           Если Файл.ActiveSheet.Cells(НомСтроки,5).Value <> Неопределено Тогда

               ТекСтр.КоличествоВкладчиков            = ВернутьЧисло(Файл.ActiveSheet.Cells(НомСтроки,5).Value);    

           КонецЕсли;

       КонецЦикла;

       Renat11111

    11 — 16.09.10 — 12:10

    тоесть интересует как все же можно активный лист установить чтоб код не менять лень просто

    //Файл.ActiveSheet = Файл.Sheets(1);

    так вот естественно не работает… но ведь можно наверно как то?

       smaharbA

    12 — 16.09.10 — 12:16

    за активе надо убивать

       Renat11111

    13 — 16.09.10 — 12:18

    (12) ясно тогда переделываем активно ))))

       Fatum1980

    14 — 16.09.10 — 12:19

       Renat11111

    15 — 16.09.10 — 12:24

    (14) не забанили. Просто туман в голове, бывает иногда. А когда быстро надо то легче на мисту, чем самому разбираться. всем спасибо за ликбез.

       smaharbA

    16 — 16.09.10 — 12:24

    ….Worksheets(2).Activate();

    не ни сколько не отменяет (12)

       smaharbA

    17 — 16.09.10 — 12:25

    (15) нажми ф1 в екселе

      

    Fragster

    18 — 16.09.10 — 14:01

    за обращение через 2 точки больше одного раза — нужно бить по почкам

    Содержание

    1. VBA Activate Sheet — Как активировать лист в Excel, используя код VBA?
    2. Excel VBA Activate Sheet
    3. Как активировать лист в Excel VBA?
    4. VBA Activate Sheet — Пример № 1
    5. VBA Activate Sheet — Пример № 2
    6. VBA Activate Sheet — Пример № 3
    7. Плюсы Excel VBA Activate Sheet
    8. То, что нужно запомнить
    9. Рекомендуемые статьи
    10. VBA Выбрать лист, активировать лист и получить активный лист
    11. ActiveSheet
    12. Активировать рабочий лист (настройка ActiveSheet)
    13. Имя ActiveSheet
    14. Выбранные листы против ActiveSheet
    15. Выберите рабочий лист
    16. Выбрать лист по имени вкладки
    17. Выбрать лист по порядковому номеру
    18. Выберите рабочий лист с кодовым именем VBA
    19. Выбрать текущий лист
    20. Дополнительные примеры активации / выбора листов
    21. Установите ActiveSheet на переменную
    22. Изменить имя ActiveSheet
    23. С ActiveSheet
    24. Перебирать выбранные листы
    25. Перейти к следующему листу

    VBA Activate Sheet — Как активировать лист в Excel, используя код VBA?

    Excel VBA Activate Sheet

    Для активации или выбора листа в Excel мы вручную переходим на лист и нажимаем на вкладку «Лист». Но когда мы пишем код, в котором нам нужно связать разные листы в разных формах, мы можем использовать функцию VBA Activate Sheet. Это можно сделать с помощью «. Активировать »в VBA. Это автоматически выберет или активирует лист для дальнейшего использования.

    Активация листа означает выбор этого листа. И чтобы узнать, активирован или выбран этот лист, после проверки кода в Excel лучше проверить, можем ли мы увидеть текущий лист или нет.

    Как активировать лист в Excel VBA?

    Ниже приведены различные примеры активации листа в Excel с использованием кода VBA.

    Вы можете скачать этот шаблон Excel для активации листа VBA здесь — Шаблон Excel для активации листа VBA

    VBA Activate Sheet — Пример № 1

    Существуют различные способы активации листа в VBA. Для этого мы рассмотрели 3 листа с именами Первый, Второй и Третий, как показано ниже. Целью присвоения имен каждому листу является различие между номером листа и именем листа, которое будет использоваться в следующих примерах.

    Выполните следующие шаги, чтобы активировать лист в Excel VBA.

    Шаг 1: Теперь перейдите к VBA и на вкладке меню « Вставка » выберите « Модуль», как показано ниже.

    Модуль — это место, где мы напишем код для активации листа. После этого мы откроем новый модуль.

    Шаг 2: В этом модуле создайте подкатегорию функции с любым именем. Для лучшего понимания мы создали его от имени VBA Activate Sheet по порядку. Это поможет в отслеживании правильного модуля.

    Код:

    Шаг 3: Теперь используйте функцию « Листы» для выбора любого листа.

    Код:

    Шаг 4: Теперь, чтобы фактически выбрать или активировать лист в Excel, используйте команду « Активировать», за которой следует точка (.)

    Код:

    Таким образом, мы разрешаем выбирать лист с именем «Первый» всякий раз, когда код вызывает его.

    Шаг 5: Теперь сделайте то же самое для имени листа Second и Third, как показано ниже.

    Код:

    Шаг 6: Теперь скомпилируйте код пошагово или за один раз. Небольшой код может быть скомпилирован за один раз, что может не привести к ошибке. После этого запустите код, нажав на кнопку Play, которая находится под строкой меню.

    Мы увидим, что третий лист будет выбран так, как он был расположен в конце. Если мы выполним пошаговую компиляцию, то сможем увидеть, кто первый, второй и третий листы активируются нажатием клавиши F8.

    Когда компилятор пройдет через первую строку, мы увидим, что лист First активирован, как показано ниже.

    Снова нажав клавишу F8, компилятор пройдет через вторую строку кода, и мы увидим, что лист Second активирован.

    И когда компилятор достиг End Sub структуры кода, мы активируем третий лист, как показано ниже.

    VBA Activate Sheet — Пример № 2

    Мы также можем использовать команду «Рабочий лист» для выбора и активации любого листа. Этот процесс очень похож на пример-1. Для этого еще раз рассмотрим имя файла с именем First , Second и Third. Выполните следующие шаги, чтобы активировать лист в Excel VBA.

    Шаг 1: В модуле начните писать подкатегорию VBA Activate Sheet в последовательности, как показано ниже.

    Код:

    Шаг 2: Поскольку мы использовали команду Sheet для активации Sheet, здесь мы будем использовать команду Worksheet .

    Код:

    Шаг 3: Теперь используйте функцию «Активировать», обозначенную точкой (.), Чтобы активировать лист.

    Код:

    Шаг 4: Теперь сделайте то же самое для Второго и Третьего Листа.

    Код:

    Шаг 5: После этого скомпилируйте код. Здесь мы сделаем пошаговую компиляцию, чтобы увидеть изменения. Для прессы F8, которая выполняет пошаговую компиляцию и запуск кода. Когда компилятор пройдет через вторую строку кода, мы увидим, что в листе Excel второй активирован или выбран.

    Шаг 6: Снова нажмите клавишу F8, чтобы выбрать следующий лист. Мы увидим, как компилятор проходит через третью строку кода и достигает конца, лист с именем «Третий» активируется или выбирается.

    VBA Activate Sheet — Пример № 3

    Есть еще один способ активировать любой лист. Для этого мы также рассмотрим тот же набор листов с одинаковыми именами First, Second и Third, которые используются в приведенных выше примерах. В этом примере мы увидим 3 комбинации функций Sheet и Worksheet вместе с Select, которые мы будем использовать вместо Activate . Функция выбора работает так же, как и активировать . Используя комбинацию различных функций для одного и того же использования, мы увидим, как меняется результат.

    Выполните следующие шаги, чтобы активировать лист в Excel VBA.

    Шаг 1: Для этого откройте модуль и поместите подкатегорию в название выполняемой функции или в любое другое имя по вашему выбору. Мы сохраняем имя, но в последовательности, как показано ниже.

    Код:

    Шаг 2: Снова таким же образом используйте функцию Sheets с именем листа, как показано ниже.

    Код:

    Шаг 3: После этого используйте функцию Select, тянущуюся через точку (.)

    Код:

    Шаг 4: Теперь во второй строке кода мы будем использовать функцию Sheets вместе с Activate для листа с именем Second, как показано ниже.

    Код:

    Шаг 5: И для последнего листа с именем «Третий» мы будем использовать «Рабочие листы» вместе с функцией «Выбор», чтобы активировать его, как показано ниже.

    Код:

    Шаг 6: Теперь скомпилируйте полный код и выполните шаг за шагом, чтобы увидеть изменения, нажав клавишу F8. Когда компилятор проходит через первую строку кода, лист First будет активирован.

    Когда компиляция проходит через вторую строку кода, лист Second будет активирован.

    И наконец, когда компилятор придет в End Sub, активируется третий лист, как показано ниже.

    Вот как мы можем использовать комбинацию Sheets и Worksheets вместе с функциями Activate и Select для активации любого рабочего листа.

    Плюсы Excel VBA Activate Sheet

    • Выбрать любой лист в Excel, а также с VBA довольно просто.
    • Эта функция очень полезна, когда наш код связан с данными на разных листах.

    То, что нужно запомнить

    • Функция выбора и активации выполняет ту же функцию, что и активация любого листа. Хотя название другое.
    • Различные комбинации выбора и активации вместе с листами и рабочим листом возможны для активации одного или нескольких рабочих листов.
    • Активация любых листов означает выбор этого листа.
    • После выполнения кода сохраните файл в Macro Enable Worksheet. Это помогает сохранить код, чтобы мы могли использовать его несколько раз без каких-либо потерь.

    Рекомендуемые статьи

    Это руководство к листу активации VBA. Здесь мы обсудили, как активировать лист в Excel, используя код VBA, а также некоторые практические примеры и загружаемый шаблон Excel. Вы также можете просмотреть наши другие предлагаемые статьи —

    1. VBA Range Cells
    2. Найти внешние ссылки в Excel
    3. VBA Active Cell
    4. Строка состояния в Excel

    Источник

    VBA Выбрать лист, активировать лист и получить активный лист

    В этой статье будет обсуждаться объект ActiveSheet в VBA. Также будет обсуждаться, как активировать, выбирать и переходить к рабочим листам (и многое другое). Прочтите наше полное руководство по рабочим листам VBA для получения дополнительной информации о работе с рабочими листами в VBA.

    ActiveSheet

    В VBA ActiveSheet относится к текущему активному рабочему листу. Одновременно может быть активен только один лист.

    Активировать рабочий лист (настройка ActiveSheet)

    Чтобы установить ActiveSheet, используйте Worksheet.Activate:

    1 Рабочие листы («Ввод»). Активировать

    Команда «Активировать лист» фактически «перейдет» к листу, изменив видимый лист.

    В приведенном выше примере используется имя листа (вкладка). Вместо этого вы можете использовать кодовое имя VBA для рабочего листа:

    Имя ActiveSheet

    Чтобы получить имя ActiveSheet:

    1 msgbox ActiveSheet.name

    Выбранные листы против ActiveSheet

    В любой момент времени ActiveSheet может быть только один лист. Однако можно выбрать сразу несколько листов.

    Когда выбрано несколько листов, активным считается только самый верхний лист (ActiveSheet).

    Выберите рабочий лист

    Если вы хотите выбрать лист вместо его активации. Вместо этого используйте .Select.

    Выбрать лист по имени вкладки

    Это выбирает рабочий лист на основе его имени вкладки листа

    1 Таблицы («Ввод»). Выбрать

    Выбрать лист по порядковому номеру

    Это выбирает рабочий лист на основе его положения относительно других вкладок.

    1 Рабочие листы (1) .Выбрать

    Выберите рабочий лист с кодовым именем VBA

    Выбор листов по имени кода может предотвратить ошибки, вызванные изменением имени листа.

    Выбрать текущий лист

    Чтобы выбрать текущий рабочий лист, используйте объект ActiveSheet:

    Дополнительные примеры активации / выбора листов

    Установите ActiveSheet на переменную

    Это назначит ActiveSheet переменной объекта рабочего листа.

    123 Dim ws как рабочий листУстановить ws = ActiveSheet

    Изменить имя ActiveSheet

    Это изменит имя ActiveSheet.

    1 ActiveSheet.Name = «NewName»

    С ActiveSheet

    Использование оператора With позволяет оптимизировать код при работе с объектами (такими как листы или ActiveSheet).

    12345 С ActiveSheet.Name = «StartFresh».Cells.Clear.Range («A1»). Value = .NameКонец с

    Обратите внимание, что вам не нужно повторять ActiveSheet перед каждой строкой кода. Это может значительно сэкономить время при работе с длинным списком команд.

    Перебирать выбранные листы

    Следующий макрос будет проходить по всем выбранным листам, отображая их имена.

    12345678 Sub GetSelectedSheetsName ()Dim ws как рабочий листДля каждого ws в ActiveWindow.SelectedSheetsMsgBox ws.NameСледующий wsКонец подписки

    Перейти к следующему листу

    Этот код перейдет на следующий лист. Если ActiveSheet является последним листом, он перейдет к первому листу в рабочей книге.

    Источник

    Содержание

    • ActiveSheet
    • Выбранные листы против ActiveSheet
    • Выберите рабочий лист
    • Дополнительные примеры активации / выбора листов

    В этой статье будет обсуждаться объект ActiveSheet в VBA. Также будет обсуждаться, как активировать, выбирать и переходить к рабочим листам (и многое другое). Прочтите наше полное руководство по рабочим листам VBA для получения дополнительной информации о работе с рабочими листами в VBA.

    В VBA ActiveSheet относится к текущему активному рабочему листу. Одновременно может быть активен только один лист.

    Активировать рабочий лист (настройка ActiveSheet)

    Чтобы установить ActiveSheet, используйте Worksheet.Activate:

    1 Рабочие листы («Ввод»). Активировать

    Команда «Активировать лист» фактически «перейдет» к листу, изменив видимый лист.

    В приведенном выше примере используется имя листа (вкладка). Вместо этого вы можете использовать кодовое имя VBA для рабочего листа:

    Имя ActiveSheet

    Чтобы получить имя ActiveSheet:

    1 msgbox ActiveSheet.name

    Выбранные листы против ActiveSheet

    В любой момент времени ActiveSheet может быть только один лист. Однако можно выбрать сразу несколько листов.

    Когда выбрано несколько листов, активным считается только самый верхний лист (ActiveSheet).

    Выберите рабочий лист

    Если вы хотите выбрать лист вместо его активации. Вместо этого используйте .Select.

    Выбрать лист по имени вкладки

    Это выбирает рабочий лист на основе его имени вкладки листа

    1 Таблицы («Ввод»). Выбрать

    Выбрать лист по порядковому номеру

    Это выбирает рабочий лист на основе его положения относительно других вкладок.

    1 Рабочие листы (1) .Выбрать

    Выберите рабочий лист с кодовым именем VBA

    Выбор листов по имени кода может предотвратить ошибки, вызванные изменением имени листа.

    Выбрать текущий лист

    Чтобы выбрать текущий рабочий лист, используйте объект ActiveSheet:

    Дополнительные примеры активации / выбора листов

    Установите ActiveSheet на переменную

    Это назначит ActiveSheet переменной объекта рабочего листа.

    123 Dim ws как рабочий листУстановить ws = ActiveSheet

    Изменить имя ActiveSheet

    Это изменит имя ActiveSheet.

    1 ActiveSheet.Name = «NewName»

    С ActiveSheet

    Использование оператора With позволяет оптимизировать код при работе с объектами (такими как листы или ActiveSheet).

    12345 С ActiveSheet.Name = «StartFresh».Cells.Clear.Range («A1»). Value = .NameКонец с

    Обратите внимание, что вам не нужно повторять ActiveSheet перед каждой строкой кода. Это может значительно сэкономить время при работе с длинным списком команд.

    Перебирать выбранные листы

    Следующий макрос будет проходить по всем выбранным листам, отображая их имена.

    12345678 Sub GetSelectedSheetsName ()Dim ws как рабочий листДля каждого ws в ActiveWindow.SelectedSheetsMsgBox ws.NameСледующий wsКонец подписки

    Перейти к следующему листу

    Этот код перейдет на следующий лист. Если ActiveSheet является последним листом, он перейдет к первому листу в рабочей книге.

    12345 Если ActiveSheet.Index = Worksheets.Count, тоРабочие листы (1) .АктивироватьЕщеActiveSheet.Next.ActivateКонец, если

    Вы поможете развитию сайта, поделившись страницей с друзьями

     

    m3tp

    Пользователь

    Сообщений: 3
    Регистрация: 25.01.2013

    Здравствуйте, подскажите по макросу. Есть книги эксель они все одинаковые, кол-во может быть какое угодно но структура одинаковая во всех книгах. В каждой книге есть три листа. Есть общий эксель в который сводятся итоги а именно среднее значение из ячеек всех книг. В общей книге есть макрос который обходит все книги находит среднее значение в ячейках и заносит их в таблицу в общей книги. Проблема в том что когда макрос обходит все эксели он берет данные из активного листа, а так как книги заполняют разные люди то и листы могут быть разные активными получиться что итог получится не верным. Как изменить макрос так чтоб он делал нужный мне лист активным и только после этого брал данные. Просто книг может быть очень много и заходить вручную делать активным нужный лист очень длительно по времени. Пример приложил. Очень нужна помощь.

    Прикрепленные файлы

    • пример.rar (54.46 КБ)

     

    ikki

    Пользователь

    Сообщений: 9709
    Регистрация: 22.12.2012

    #2

    25.01.2013 20:17:26

    Цитата
    m3tp пишет: когда макрос обходит все эксели он берет данные из активного листа

    вы ошибаетесь.
    имеющийся в вашем файле макрос всегда берет данные из листа «ОКС», независимо от того, какой лист активный.

    Цитата
    m3tp пишет:Как изменить макрос так чтоб он делал нужный мне лист активным

    модуля чтения мыслей в excel пока нет.

    Изменено: ikki25.01.2013 20:17:59

    фрилансер Excel, VBA — контакты в профиле
    «Совершенствоваться не обязательно. Выживание — дело добровольное.» Э.Деминг

     

    The_Prist

    Пользователь

    Сообщений: 14182
    Регистрация: 15.09.2012

    Профессиональная разработка приложений для MS Office

    #3

    25.01.2013 21:18:54

    Код
    Sheets("Нужный мне лист").Select

    Но лучше даже не активировать, а сразу к ячейкам нужного листа обращаться:

    Код
    Sheets("Нужный мне лист").Cells(1,1).Value = "новый текст"
    Dim vVar
    vVar = Sheets("Нужный мне лист").Cells(1,1).Value

    Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

     

    m3tp

    Пользователь

    Сообщений: 3
    Регистрация: 25.01.2013

    ikki, а причем модуль чтения мыслей, я думал exel понимает VBA, я ведь с экселем на vba говорю? интересно а как делаетте это Вы?

     

    Юрий М

    Модератор

    Сообщений: 60585
    Регистрация: 14.09.2012

    Контакты см. в профиле

    #5

    26.01.2013 21:30:38

    m3tp, Вам скучно? Ведь ikki Вам ответил, что

    Цитата
    в вашем файле макрос всегда берет данные из листа «ОКС», независимо от того, какой лист активный.

    Prist ответил, что:

    Цитата
    лучше даже не активировать, а сразу к ячейкам нужного листа обращаться:
     

    ikki

    Пользователь

    Сообщений: 9709
    Регистрация: 22.12.2012

    #6

    26.01.2013 21:35:53

    Цитата
    m3tp пишет: интересно а как делаетте это Вы?

    в таких случаях я в макросе пишу, какой именно мне лист нужен.
    по его имени или номеру или по каким-то отличительным признакам.
    если я напишу в макросе «нужный мне» — vba с excel’ем меня не поймут.

    фрилансер Excel, VBA — контакты в профиле
    «Совершенствоваться не обязательно. Выживание — дело добровольное.» Э.Деминг

     

    Михаил С.

    Пользователь

    Сообщений: 10514
    Регистрация: 21.12.2012

    #7

    27.01.2013 08:31:21

    Цитата
    ikki пишет:
    если я напишу в макросе «нужный мне» — vba с excel’ем меня не поймут.

    Поймут, если лист назван также.

     

    ikki

    Пользователь

    Сообщений: 9709
    Регистрация: 22.12.2012

    мои не поймут — я так листы не называю  :)  
    да и автор темы, видимо, тоже — в его примере таких листов тоже нет.

    Изменено: ikki27.01.2013 11:37:53

    фрилансер Excel, VBA — контакты в профиле
    «Совершенствоваться не обязательно. Выживание — дело добровольное.» Э.Деминг

     

    m3tp

    Пользователь

    Сообщений: 3
    Регистрация: 25.01.2013

    #9

    27.01.2013 14:09:37

    Цитата
    Юрий М пишет:
    m3tp, Вам скучно? Ведь ikki Вам ответил, что

    Цитата
    в вашем файле макрос всегда берет данные из листа «ОКС», независимо от того, какой лист активный.

    Prist ответил, что:

    Цитата
    лучше даже не активировать, а сразу к ячейкам нужного листа обращаться:

    как раз наоборот очень даже не скучно, ikki спасобо большое что указал на мою невнимательность, при запуска макроса появилась ошибка которую воспроизвести сейчас не могу вот и подумал что из за того что лист в книге не тот активен который указан в скрипте. to The_Prist спасибо за вариант.

    Понравилась статья? Поделить с друзьями:
  • Как установить автосохранение в excel
  • Как установить автора в word
  • Как установить автоподбор высоты строки в excel
  • Как установить автоматическую нумерацию строк в excel
  • Как установить автоматическую дату в excel