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

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

  • Administrator
  • Сообщений: 1574
Нужно различать:
  • работа с открытой excel-книгой;
  • работа с закрытой excel-книгой.
В этой теме рассказано о работе с открытой книгой.

Макросу можно указать, с какой открытой книгой работать, следующими способами.

Способ 1. Обращение к активной книге.
Активная книга - это книга, которая отображается на мониторе.

Sub Procedure_1()
   
    ' Узнаём имя активной книги.
    ' Про "Debug.Print" см. ниже, в примечании.
    Debug.Print ActiveWorkbook.Name
   
End Sub

Способ 2. Обращение к книге по имени excel-файла.
Нужно различать "полное имя файла" и "имя файла".
Полное имя файла = путь к файлу + имя файла.
В коде ниже говорится об имени файла.

Sub Procedure_2()
   
    Debug.Print Workbooks("Имя файла.xlsx").Name
   
End Sub

Способ 3. Обращение к книге по порядковому номеру.
Каждая открытая книга имеет уникальный (другими словами - неповторяющийся) порядковый номер, который автоматически присваивается книге при открытии книги.

Sub Procedure_3()
   
    Debug.Print Workbooks(1).Name
   
End Sub

Способ 4. Обращение к книге по vba-имени книги.
Vba-имя можно посмотреть в VBA, в окне "Project - ...".

Sub Procedure_4()
   
    Debug.Print ЭтаКнига.Name
   
End Sub


Примечание

Debug.Print - это работа с окном, которое отображается в VBA так: View - Immediate Window.
Это окно позволяет делать две вещи:
  • выводить какой-нибудь результат на монитор;
  • запускать коды.