Извлечение имени файла из Dir () - PullRequest
0 голосов
/ 21 сентября 2009

У меня есть макрос, который использует функцию Dir.

MyFile = Dir(CurDir() & Sep & "*.xls")
Do While MyFile <> ""
     ...
     MyFile = Dir()
Loop

Как извлечь только имя файла из MyFile (исключая расширение)?

Ответы [ 3 ]

1 голос
/ 21 сентября 2009

Не похоже, что есть удобная встроенная функция, поэтому вам придется выполнить некоторые манипуляции со строками:

' Get just the file name and extension
lastPathIndex = InStrRev(MyFile, Application.PathSeparator)
If lastPathIndex >= 1 Then
    MyFile = Right(MyFile, Len(MyFile) - lastPathIndex)
End If

' Now get the file name without the extension  
lastDotIndex = InStrRev(MyFile, ".")
If lastDotIndex >= 1 Then
    MyFile = Left(MyFile, lastDotIndex - 1)
End If

' MyFile now contains just the filename
0 голосов
/ 22 сентября 2009

Другой метод -

fileName = Split(MyFile, Sep)(UBound(Split(MyFile, Sep)))
0 голосов
/ 21 сентября 2009

Переменная MyFile содержит имя файла с расширением и без пути.

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

MyFile = Dir(CurDir() & Sep & "*.xls")
Do While MyFile <> ""
     MyFile = Left(MyFile, Len(MyFile) - 4)
     ...
     MyFile = Dir()
Loop
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...