Я хочу просмотреть каталог и сгруппировать файлы по именам файлов до первого _
в имени файла.
Файлы структурированы по
Имя менеджера_Employee Name_Assessment.xlsx
Я хочу, чтобы это сгруппировало строки до первого подчеркивания.Я не могу определить длину символа, потому что у менеджеров разные имена.
Я думаю, что изменение оператора If Right(filename,4)
должно делать то, что я хочу, но я не могу указать ограничение на число символов.
Public Sub Move_Files()
Dim sourceFolder As String, fileName As String
Dim destinationFolder As String, foundDestinationFolder As String
Dim missingFolders As String
sourceFolder = "C:\Assessment\"
If Right(sourceFolder, 1) <> "\" Then sourceFolder = sourceFolder & "\"
'Loop through *.xls files in source folder
missingFolders = ""
fileName = Dir(sourceFolder & "*.xls")
While fileName <> vbNullString
**If Right(fileName, 4) = ".xlsx" Then**
destinationFolder = Left(fileName, InStrRev(fileName, ".") - 1)
foundDestinationFolder = Find_Subfolder(sourceFolder, destinationFolder)
If foundDestinationFolder <> "" Then
Name sourceFolder & fileName As foundDestinationFolder & fileName
Else
missingFolders = missingFolders & vbCrLf & destinationFolder
End If
End If
fileName = Dir
Wend
If missingFolders = "" Then
MsgBox "All subfolders exist. All files moved to their respective destination folder"
Else
MsgBox "The following subfolders don't exist:" & vbCrLf & _
missingFolders
End If
End Sub
После того, как он определит все, что подходит под именем этого менеджера, я хочу сгруппировать только файлы сотрудников этого менеджера в папку с их именем вплоть до первого _
.