6 способов получить имя книги из диапазона в VBA

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

Метод 1: использование объекта приложения

Dim wbName As String
wbName = ThisWorkbook.Name

Этот метод использует свойство ThisWorkbookобъекта Applicationдля прямого получения имени книги, содержащей код VBA.

Способ 2. Использование объекта ActiveWorkbook

Dim wbName As String
wbName = ActiveWorkbook.Name

Этот метод получает имя активной в данный момент книги с помощью свойства ActiveWorkbook.

Метод 3. Использование свойства Parent объекта Range

Dim wbName As String
wbName = Range("A1").Parent.Name

Обратившись к свойству Parentобъекта Range, вы можете получить имя книги, содержащей указанный диапазон.

Метод 4. Использование коллекции рабочих книг

Dim wbName As String
wbName = Workbooks(1).Name

В этом методе вы можете использовать коллекцию Workbooksдля получения имени конкретной книги по ее индексному номеру.

Метод 5. Использование свойства FullName объекта Workbook

Dim wb As Workbook
Dim wbName As String
Set wb = ThisWorkbook ' or Set wb = ActiveWorkbook
wbName = wb.FullName

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

Метод 6. Использование пользовательской функции

Function GetWorkbookName(rng As Range) As String
    GetWorkbookName = rng.Worksheet.Parent.Name
End Function

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

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