工作中,打开某个工作簿,提取其中数据这样的操作用 VBA 代码如何完成?首先得用VBA控制打开指定的工作簿。下面介绍两种方法。 方式一: GOF = Application.GetOpenFilename('Excel Files , *.xls;*.xlsx', , '请选取文件', , MultiSelect:=False) ’弹出选取文件的窗口If GOF = 'False' Then ’如果将弹出窗口取消掉,GOF会被赋值False(F为大写) MsgBox '未选择文件,程序中止' Exit SubEnd If Set WB = Workbooks.Open(GOF) '打开选择的文件,并赋值给WB对象变量 就是使用 Application “方法”,之前讲的都是Range的“方法”,用法都是相通的。
第1句语句简单点写:GOF = MultiSelect:=True 就是可以多选文件,这种情况下,GOF是个一维数组(标号起始 1),即使只选了一个文件也是数组格式。 方式二:
Application.FileDialog ”方法”,这是单选文件的语法。下面多选文件的语法: With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = True .Filters.Add 'Excel Files', '*.xls,*.xlsx' If .Show = True Then Set GOF = .SelectedItems Else: Exit Sub End IfEnd With .SelectedItems 是个类似“字典”结构的对象,赋值给GOF,然后再取出文件名称。 如果是知晓文件名与路径,填写在单元格内,可以直接赋值给变量,然后用Set WB = Workbooks.Open(GOF) 语句,即打开了此工作簿。关闭语句:WB.Close 附一个不用打开工作簿,提取数据:
其实这个只是在后台打开了文件,没显示出来。在VBA编码窗口是可以看到打开的工作簿的。 |
|