(已编辑)VBA Select 具有特定字母和编号的文件
(Edited)VBA Select files with specific letters and numbering out of identical names with added variation
我开始使用宏,我有一个包含 100 多个文件的列表可以在 VBA 中打开,这些文件的名称如下:
Mark001.xls Mark_001_initial.xls
Mark001_improvement.xls
Mark002.xls
Mark002_initial。
Marc002_Improvement.xls
Pol001.xls
...
Sub Macro1()
Dim FilesToOpen
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="EXLS Files(*.xls), *.xls," & "Mark??? Files (Mark???.xls), Mark???.xls", MultiSelect:=True, Title:="EXLS Files To Open")
End Sub
这会打开一个 window 到 select 个文件,但是 select 没有文件,它不能识别它们
也有相同的.txt格式的文件,但我只需要打开Mark001.xls类型的文件,大的名字无关紧要。
我还需要将它们复制到不同的文件夹。我尝试使用 OpenFile、SerchFile 和 selectFile 应用程序,但没有成功。
非常感谢!
对于 Application.GetOpenFilename
通配符仅适用于
中的文件扩展名
FileFilter:="Excel files (*.xl*)," & "*.xl*"
这将 return 所有 *.xls 和 *.xlsx 文件
其他选项:
Application.FileDialog (msoFileDialogOpen Or msoFileDialogFilePicker)
.
Sub openWildFile() 'use params to make it generic: "ByVal partialName As String"
Const partialName As String = "*Mark_"
Const partialExt As String = "*.xl*"
Dim selectedFile As String, dlg As Object 'A 3rd option is to use APIs
Set dlg = Application.FileDialog(msoFileDialogOpen) 'Or (msoFileDialogFilePicker)
With dlg
.Title = "Select " & partialName & " File"
With .Filters
.Clear
.Add partialName & " Files", partialExt
End With
.AllowMultiSelect = True
.InitialFileName = partialName & partialExt
If (.Show <> 0) Then selectedFile = Trim(.SelectedItems.Item(1))
End With
End Sub
.
要复制文件,请使用:
FileCopy SourceFile, DestinationFile ' Copy source file to target
我开始使用宏,我有一个包含 100 多个文件的列表可以在 VBA 中打开,这些文件的名称如下: Mark001.xls Mark_001_initial.xls Mark001_improvement.xls Mark002.xls Mark002_initial。 Marc002_Improvement.xls Pol001.xls ...
Sub Macro1()
Dim FilesToOpen
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="EXLS Files(*.xls), *.xls," & "Mark??? Files (Mark???.xls), Mark???.xls", MultiSelect:=True, Title:="EXLS Files To Open")
End Sub
这会打开一个 window 到 select 个文件,但是 select 没有文件,它不能识别它们
也有相同的.txt格式的文件,但我只需要打开Mark001.xls类型的文件,大的名字无关紧要。
我还需要将它们复制到不同的文件夹。我尝试使用 OpenFile、SerchFile 和 selectFile 应用程序,但没有成功。
非常感谢!
对于 Application.GetOpenFilename
通配符仅适用于
FileFilter:="Excel files (*.xl*)," & "*.xl*"
这将 return 所有 *.xls 和 *.xlsx 文件
其他选项:
Application.FileDialog (msoFileDialogOpen Or msoFileDialogFilePicker)
.
Sub openWildFile() 'use params to make it generic: "ByVal partialName As String"
Const partialName As String = "*Mark_"
Const partialExt As String = "*.xl*"
Dim selectedFile As String, dlg As Object 'A 3rd option is to use APIs
Set dlg = Application.FileDialog(msoFileDialogOpen) 'Or (msoFileDialogFilePicker)
With dlg
.Title = "Select " & partialName & " File"
With .Filters
.Clear
.Add partialName & " Files", partialExt
End With
.AllowMultiSelect = True
.InitialFileName = partialName & partialExt
If (.Show <> 0) Then selectedFile = Trim(.SelectedItems.Item(1))
End With
End Sub
.
要复制文件,请使用:
FileCopy SourceFile, DestinationFile ' Copy source file to target