В этом руководстве будет показано, как получить и установить имя книги в VBA.
Мы можем получить или установить имя активной книги в VBA или пройти через все открытые книги в Excel и получить или установить имя каждой из них с помощью цикла VBA.
Получить название книги
Чтобы получить имя активной книги, нам нужно использовать свойство name объекта workbooks.
12345 | Sub GetWorkbookName ()Dim strWBName As StringstrWBName = ActiveWorkbook.NameMsgBox strWBNameКонец подписки |
Если бы мы запустили приведенный выше код, мы бы увидели на экране окно сообщения с именем активной книги.
Чтобы просмотреть все активные книги и вернуть имена книг в Excel, мы можем запустить следующий код:
1234567 | Sub GetWorkbookNames ()Dim wb As WorkbookДля каждого ББ в книгахActiveCell = wb.NameActiveCell.Offset (1, 0) .SelectСледующийКонец подписки |
В приведенных выше примерах будет указано расширение файла (например, xlsx). Если вы не хотите включать расширение, мы можем использовать несколько методов, чтобы получить только имя файла книги.
Получить имя книги без расширения
Мы можем использовать функции LEFT и INSTR для удаления любых символов после точки в имени файла:
12345 | Sub GetWorkbookName ()Dim strWBName As StringstrWBName = Left (ActiveWorkbook.Name, InStr (ActiveWorkbook.Name, ".") - 1)MsgBox strWBNameКонец подписки |
Мы можем использовать функции LEFT и LEN, чтобы удалить 5 символов из конца имени файла:
12345 | Sub GetWorkbookName ()Dim strWBName As StringstrWBName = Left (ActiveWorkbook.Name, Len (ActiveWorkbook.Name) - 55)MsgBox strWBNameКонец подписки |
Установка имени книги
Чтобы установить имя книги в VBA, мы по-прежнему используем свойство Name книги, однако мы не можем использовать этот метод для изменения имени активной книги. Это связано с тем, что активная книга открыта, и произойдет ошибка доступа к файлу. Чтобы преодолеть это, мы можем сохранить файл с новым именем, а затем удалить старый файл.
12345678910 | Public Sub SetWorkbookName ()Dim strPath как строкаDim strNewName As StringDim strOldName как строкаstrOldName = ActiveWorkbook.NamestrNewName = InputBox («Введите новое имя книги»)strPath = ActiveWorkbook.PathActiveWorkbook.SaveAs strPath & "/" & strNewNameУбить strPath & "/" & strOldNameКонец подписки |
Чтобы переименовать закрытую книгу, мы можем использовать метод Name.
123 | Общедоступная подпрограмма RenameWorkbook ()Назовите "C: \ Data \ MyFile.xlsx" как "C: \ Data \ MyNewFile.xlsx"Конец подписки |