Перейти к содержимому

Как обратиться к листу excel vba

  • автор:

Ссылки на листы по номеру индекса

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

Sub FirstOne() Worksheets(1).Activate End Sub 

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

Sub FourthOne() Sheets(4).Activate End Sub 

Примечание Порядок индексов может измениться при перемещении, добавлении или удалении листов.

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

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

Обратная связь

Были ли сведения на этой странице полезными?

[VBA] Обращение к листу по имени в макросе Excel

Вообщем, у вас в VBA IDE вместо имён листов стоят знаки ______, и макросы не воспринимают вариант Sheets(«лютий»), потому что в языковых настройках системы неверно выставлен параметр: Язык программ, не поддерживающих Юникод — нужно выбрать Русский (или украинский).

  1. Откройте Панель управления (для этого, нажмите комбинацию клавиш Win+R и введите слово control затем кнопку ОК).
  2. Найдите пункт Изменение форматов даты, времени и чисел и нажмите его (может называться немного иначе, например «Часы и регион«) — дальше вероятно, придётся ещё раз нажать пункт «Регион«
  3. В открывшемся диалоговом окне перейдите на вкладку Дополнительно и убедитесь, что Язык программ, не поддерживающих Юникод выбран Русский (Россия). Если другой, нажимаете изменить язык системы и выбираете Русский или Украинский.
  4. После нажатия ОК перезагружайте компьютер.

После этого к листу можно будет обращаться макросом Sheets(«лютий») т.е. по имени.

// Прим.: также, вариант решения см. в посте № 4.

Использование функций листов Excel в Visual Basic

В операторах Visual Basic можно использовать большинство функций листов Microsoft Excel. Список функций листов, которые можно использовать, см. в статье Список функций листов, доступных для Visual Basic.

Некоторые функции листов не используются в Visual Basic. Например, не требуется функция Concatenate, так как в Visual Basic можно использовать оператор & для объединения нескольких текстовых значений.

Вызов функции листа из Visual Basic

В Visual Basic функции листов Excel доступны через объект WorksheetFunction.

В следующей процедуре Sub используется функция листа Min для определения наименьшего значения в диапазоне ячеек. Сначала переменная myRange объявляется как объект Range, а затем ей присваивается диапазон A1:C10 на листе Sheet1. Другой переменной, answer , назначается результат применения функции Min к myRange . В конце значение answer отображается в окне сообщения.

Sub UseFunction() Dim myRange As Range Set myRange = Worksheets("Sheet1").Range("A1:C10") answer = Application.WorksheetFunction.Min(myRange) MsgBox answer End Sub 

Если вы используете функцию листа, для которой требуется ссылка на диапазон в качестве аргумента, необходимо указать объект Range. Например, можно использовать функцию листа Match (ПОИСКПОЗ) для поиска диапазона ячеек. В ячейке листа потребовалось бы ввести формулу, например =ПОИСКПОЗ (9;A1:A10;0). Однако в процедуре Visual Basic необходимо указать объект Range, чтобы получить такой же результат.

Sub FindFirst() myVar = Application.WorksheetFunction _ .Match(9, Worksheets(1).Range("A1:A10"), 0) MsgBox myVar End Sub 

Функции Visual Basic не используют квалификатор WorksheetFunction. Функция может иметь такое же имя, что и функция Microsoft Excel, но работать по-другому. Например, Application.WorksheetFunction.Log и Log возвращают разные значения.

Вставка функции листа в ячейку

Чтобы вставить функцию листа в ячейку, укажите функцию в качестве значения свойства Formula соответствующего объекта Range. В следующем примере функция листа RAND (создающая случайное число), назначается свойству Formula диапазона A1:B3 на листе Sheet1 в активной книге.

Sub InsertFormula() Worksheets("Sheet1").Range("A1:B3").Formula = "=RAND()" End Sub 

Пример

В этом примере используется функция листа Pmt, чтобы рассчитать кредитный платеж по ипотечной ссуде. Обратите внимание, что в этом примере используется метод InputBox вместо функции InputBox, чтобы метод мог выполнять проверку типов. Операторы Static приводят к тому, что Visual Basic сохраняет значения трех переменных; они отображаются как значения по умолчанию при следующем запуске программы.

Static loanAmt Static loanInt Static loanTerm loanAmt = Application.InputBox _ (Prompt:="Loan amount (100,000 for example)", _ Default:=loanAmt, Type:=1) loanInt = Application.InputBox _ (Prompt:="Annual interest rate (8.75 for example)", _ Default:=loanInt, Type:=1) loanTerm = Application.InputBox _ (Prompt:="Term in years (30 for example)", _ Default:=loanTerm, Type:=1) payment = Application.WorksheetFunction _ .Pmt(loanInt / 1200, loanTerm * 12, loanAmt) MsgBox "Monthly payment is " & Format(payment, "Currency") 

См. также

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

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

Ссылки на листы по имени

Листы можно определить по имени с помощью свойств Worksheets и Charts . Следующие инструкции активируют различные листы в активной книге.

Worksheets("Sheet1").Activate Charts("Chart1").Activate 
DialogSheets("Dialog1").Activate 

Используйте свойство Sheets для возврата листа, диаграммы, модуля или диалогового листа. Коллекция Листов содержит все эти типы листов. В следующем примере активируется лист с именем Chart1 в активной книге.

Sub ActivateChart() Sheets("Chart1").Activate End Sub 

Примечание Диаграммы, внедренные в лист, являются членами коллекции ChartObjects, а диаграммы , существующие на собственных листах, относятся к коллекции Диаграммы .

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

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

Обратная связь

Были ли сведения на этой странице полезными?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *