Автор Тема: Excel VBA Макросы: Как обратиться к эксель-листу?  (Прочитано 44 раз)

Онлайн Администратор

  • Administrator
  • Сообщений: 1547
Во всех примерах упоминается Debug.Print - это вывод информации в область: View - Immediate Window.
Во всех примерах работа идёт с листом активного эксель-файла. Активный файл - это файл, который отображён на мониторе. Если вам надо обратиться к листу другого файла, то обращайтесь к файлу: https://forumvba.ru/index.php?topic=40.0, а затем через файл обращайтесь к листу.


Способ 1. Обращение к активному листу.
Активный лист - это лист, который отображён на мониторе.
Sub Макрос()
    Debug.Print ActiveSheet.name
End Sub

Способ 2. Обращение по порядковому номеру.
Листы имеют порядковые номера от 1 до последнего. Нумерация листов сделана по порядку слева направо.
Обращение к первому листу:
Sub Макрос()
    Debug.Print Worksheets(1).name
End Sub

Способ 3. Обращение по имени листа.
Имя листа можно прочитать на ярлычке листа в экселе.
Обращение к листу, у которого имя 'Лист1':
Sub Макрос()
    Debug.Print Worksheets("Лист1").name
End Sub

Способ 4. Обращение по vba-имени.
VBA-имя можно увидеть в VBE, в области 'Project - ' перед скобками, в которых записано имя листа, отображаемое на ярлычке.
Sub Макрос()
    Debug.Print Лист1.Name
End Sub


Возможные проблемы

Если вы обращаетесь к листу по порядковому номеру, то можете по ошибке заключить порядковый номер в кавычки. А это будет означать, что вы хотите обратиться к листу, у которого имя '1' (то есть на ярлычке написано '1').
И наоборот, если вы хотите обратиться к листу по имени в виде порядкового номера, то можете по ошибке не заключить число в кавычки, и обращение будет не по имени, а по порядковому номеру.