У Терри есть макрос, который запускается автоматически при открытии листа.

Одна вещь, которую он делает, — это отображение первого рабочего листа в книге, который обычно называется «Консолидированный». Это отлично работает, если только у первого листа нет этого имени. Затем Терри должна не забыть изменить макрос, указав другое имя рабочего листа. Она задается вопросом, есть ли способ написать свой макрос, чтобы всегда отображался первый рабочий лист, независимо от его имени?

Обычно, как намекает Терри, вы отображаете данный рабочий лист, используя его имя в операторе следующим образом:

Worksheets("Consolidated").Activate

Это отлично работает, если в книге есть лист с таким именем (Consolidated). Отображение определенного рабочего листа (например, первого в книге), когда вы не знаете, как может быть имя этого рабочего листа, требует другого подхода.

Простой ответ — начать ссылаться на рабочий лист, используя его положение в коллекции Worksheets. Все листы в книге принадлежат к набору объектов листа. Эта коллекция (как ни странно) называется коллекцией Worksheets. Вы можете ссылаться на отдельный рабочий лист в коллекции по имени (как это было сделано в предыдущем примере) или вы можете ссылаться на них, используя порядковый номер в коллекции. Например, вы можете активировать первый рабочий лист в коллекции следующим образом:

Worksheets(1).Activate

Используя этот метод, действительно не имеет значения, как называется первый рабочий лист; это вполне могло быть «Консолидейтед» или какое-то другое название.

Excel послушно активирует первый рабочий лист в книге.

Единственный раз, когда это не сработает, — это если первый рабочий лист в вашей книге скрыт. Если рабочий лист не отображается, тогда Excel автоматически (после выполнения этого оператора) отображает первый видимый рабочий лист.

Обратите внимание, что при этом отображается первая (крайняя слева) вкладка рабочего листа в книге. Если вместо этого вы хотите отобразить первый созданный лист в книге независимо от его положения, вы можете попробовать другой подход. Каждый рабочий лист имеет (из-за отсутствия лучшего термина) закулисное «кодовое имя». Эти кодовые названия должны показаться знакомыми; это Sheet1, Sheet2, Sheet3 и т. д. Эти имена сохраняются, даже если вы можете изменить имя самого рабочего листа или изменить положение вкладок. Если вы хотите отобразить первый созданный рабочий лист (опять же, независимо от позиции), вы можете попробовать следующее:

Sheet1.Activate

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

Если это так, то приведенное выше утверждение может не дать желаемых результатов. (Тестирование — всегда хорошая идея.)

_Примечание: _

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

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (12271) применим к Microsoft Excel 97, 2000, 2002 и 2003.

Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:

link: / excelribbon-Displaying_the_First_Worksheet_in_a_Macro [Отображение первого рабочего листа в макросе].