Извлечение имени папки из пути к файлу - PullRequest
0 голосов
/ 02 марта 2020

В настоящее время я использую это в Excel vba для создания текстового поля для ввода пути к файлу:

Dim FilePath As String
Cells.Select
Selection.ClearContents
FilePath = InputBox("Hi Production Controller! Where is your file path?")

Мне нужно извлечь 14 февраля 2020 г. из этого пути к файлу:

O: \ Folder1 \ Folder2 \ Folder3 \ 2020 \ 02 Feb \ 14 Feb 2020

и вставьте его в ячейку C1. Могу ли я получить помощь? Я новичок в VBA.

Ответы [ 2 ]

2 голосов
/ 02 марта 2020

Мне нужно извлечь 14 февраля 2020 года из этого пути к файлу:

O: \ Folder1 \ Folder2 \ Folder3 \ 2020 \ 02 февраля \ 14 февраля 2020

Попробуйте это

Option Explicit

Sub Sample()
    Debug.Print GetFileFolderFromPath("O:\Folder1\Folder2\Folder3\2020\02 Feb\14 Feb 2020")
End Sub

Public Function GetFileFolderFromPath(ByVal strPath As String) As String
    If Right$(strPath, 1) <> "\" And Len(strPath) > 0 Then _
    GetFileFolderFromPath = GetFileFolderFromPath(Left$(strPath, Len(strPath) - 1)) + _
    Right$(strPath, 1)
End Function
0 голосов
/ 02 марта 2020

Разделите его, используя blacksla sh, а затем возьмите последний элемент в массиве:

Sub test()
  Dim sText As String
  Dim vSplit As Variant

  sText = "O:\Folder1\Folder2\Folder3\2020\02 Feb\14 Feb 2020"

  ' make sure folder string does not end with a backslash
  If Right$(sText, 1) = "\" Then sText = Left$(sText, Len(sText) - 1)

  ' Split into an array based on the backslash
  vSplit = Split(sText, "\")

  ' set cell C1 equal to the last item in the split array
  Range("C1") = vSplit(UBound(vSplit))

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...