Извлекая имя файла и имя папки из пути к файлу с помощью VBA в Microsoft Excel
В этой статье мы поделились кодом VBA для написания пользовательской функции для извлечения имени файла и имени папки из пути к файлу.
Необработанные данные для этого примера указывают полный путь к определенным файлам.
Логическое объяснение
В этом примере мы создали специальную функцию VBA «FileOrFolderName», которая возвращает имя файла или папки в качестве вывода.
Функция FileOrFolderName принимает на вход два параметра. Первый параметр принимает путь к файлу в качестве входных данных. Второй параметр принимает логическое значение в качестве входных данных, если мы хотим, чтобы имя файла было выходным, мы присвоим этому параметру значение True, и если мы хотим, чтобы имя папки было выходным, мы присвоим этому параметру значение False.
Для отделения имени файла и имени папки от пути к файлу, во-первых, мы находим место последнего появления разделителя пути в пути к файлу. После последнего появления разделителя пути мы можем легко разделить имя файла и имя папки как текст. Справа от разделителя пути находится имя файла, а текст слева от разделителя пути — это имя папки.
Если в пути к файлу не существует разделителя пути, то в качестве имени папки указывается путь к каталогу по умолчанию.
Выполнение пользовательской функции
Для использования определенной настраиваемой функции перейдите в ячейку C14 и введите function = FileOrFolderName (B14, FALSE), а в ячейку D14 введите function = FileOrFolderName (B14, TRUE), где ячейка B14 содержит путь к файлу.
В ячейке C14 будет имя папки, а в ячейке D14 — имя файла.
Пожалуйста, введите код ниже
Function FileOrFolderName(InputString As String, _ ReturnFileName As Boolean) As String 'Returns the foldername or the filename based on boolean value assigned Dim i As Integer, FolderName As String, FileName As String i = 0 'Code used for finding the position of last occurence of path separator While InStr(i + 1, InputString, Application.PathSeparator) > 0 i = InStr(i + 1, InputString, Application.PathSeparator) Wend 'Extract the folder path 'If No occurence of path separator is found then assign the default directory path If i = 0 Then FolderName = CurDir Else FolderName = Left(InputString, i - 1) End If 'Extracting the file name FileName = Right(InputString, Len(InputString) - i) 'Returning the folder or file name from function based on ReturnFileName parameter If ReturnFileName Then FileOrFolderName = FileName Else FileOrFolderName = FolderName End If End Function
Если вам понравился этот блог, поделитесь им с друзьями на Facebook и Facebook.
Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]