В 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, включив в него функцию извлечения имени книги.