我想在使用文件对话框选择文件时过滤文件。我想排除名称中包含“冲突”的任何文件。这可能吗?
Sub OpenMultipleFiles()
Dim fd As FileDialog
Dim fileChosen As Integer
Dim basename As String
Dim fso As Variant
Set fso = CreateObject("Scripting.FileSystemObject")
Set fd = Application.FileDialog(msoFileDialogFilePicker)
basename = fso.getBaseName(ActiveWorkbook.Name)
fd.InitialFileName = ActiveWorkbook.Path ' Set Default Location to the Active Workbook Path
fd.InitialView = msoFileDialogViewList
fd.AllowMultiSelect = True
fd.Filters.Add "All supported files", "*.xlsm"
fileChosen = fd.Show
If fileChosen = -1 Then
StartAlgo
Dim myArray As Variant
Dim FullPath As String
Dim FileName As String
Dim x As Long
'open each of the files chosen
For x = 1 To fd.SelectedItems.Count
FullPath = fd.SelectedItems(x)
FileName = fso.getFileName(fd.SelectedItems(x))
CopyContractTbls FullPath, FileName
Next x
EndAlgo
Else
MsgBox "Aborted"
Exit Sub
End If
End Sub
相反的情况也是可能的。您可以通过在 .InitialFilename 中以“c:\AnyFolder\FileName1; FileName2; ...”格式指定要列出的所有文件来包含这些文件。 可以提供多个文件名,带或不带文件扩展名,甚至部分带有星号和任何组合,例如'荧光 PQR 2024.xlsx; FET*' 然后你会得到“Flucose PQR 2024.xlsx”和“FET PQR 2024.xlsx”