Part 1:引言
- 当我们使用VBA制作一个小系统时,有的时候希望可以实现文件的手动选择功能
- 然后对选择的文件进行自动化操作等
- 类似于Excel界面中选择菜单文件-打开,弹出的对话框
- 以下代码实现了打开窗口,并且限制只能选择后缀名为xlsx,txt,xlsm的文件
Part 2:VBA代码实现
Sub test() Set objFSO = CreateObject("Scripting.FileSystemObject") With Application.FileDialog(msoFileDialogOpen) .Title = "请选择文件" .AllowMultiSelect = True .Filters.Clear .Filters.Add "Excel文件", "*.xlsx;*.txt;*.xlsm" .FilterIndex = 2 .InitialFileName = ThisWorkbook.Path .Show For Each wenJian In .SelectedItems longName = wenJian shortName = objFSO.GetFileName(wenJian) Debug.Print ("longName=" & longName) Debug.Print ("shortName=" & shortName) Call File_Insert(longName, shortName) Next End With End Sub
Part 3:部分代码解读
- .Title = "请选择文件",窗口的名字
- .AllowMultiSelect = True,允许一次选择多个文件
- -.Filters.Add "Excel文件", "*.xlsx;*.txt;*.xlsm",只能选择这三种格式的文件:xlsx,txt,xlsm
- 不同文件类型之间使用;隔开
- .InitialFileName = ThisWorkbook.Path,默认打开到当前文件夹下,可以更改
- For Each wenJian In .SelectedItems,对于每一个选择的文件可分别进行操作