如何使用 FileDialog 导入选定的工作表?
How to import selected worksheets using FileDialog?
我目前正在尝试 assemble 一个将从其他文件导入数据的主工作簿。用户应该能够 select 使用 FileDialog 的文件,到目前为止工作正常。当前不起作用的是尝试导入用户应该能够在用户表单中选择的工作表。
就我的测试而言,目前有两种选择:
- 在用户窗体上放置两个组合框,每个组合框都有静态值(一个用于文件名,一个用于工作表名称)。由于 Import-Sheets 将始终是 selected 类型,并且工作表在将来都应具有相同的名称才能工作,但前提是始终满足这些条件。
- 用户窗体上的一个组合框,它显示要导入的工作簿的工作表名称(因为无论如何我都必须打开它以将值复制到主工作簿,应该可以解析工作表名称进入组合框)。
使用 VBA 是否有可能实现我想要实现的目标?
到目前为止,我还无法将工作表名称获取到 ComboBox 中并导入数据。
这里有一个简短的例子:
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
'Show and check whether file is selected
If .Show Then
'you might wanna check if an excel workbook has been selected, or filter the filedialog upfront
Dim wbSource As Workbook
Dim ws As Worksheet
'Open Workbook
Set wbSource = Application.Workbooks.Open(.SelectedItems(1))
'Loop through the available sheets
For Each ws In wbSource.Sheets
MsgBox ws.name
Next
End If
End With
这应该可以帮助您入门 - 不要显示名称,只需将其添加到您的组合框中即可。
之后,您可以通过复制和粘贴
继续导入 sheet
我目前正在尝试 assemble 一个将从其他文件导入数据的主工作簿。用户应该能够 select 使用 FileDialog 的文件,到目前为止工作正常。当前不起作用的是尝试导入用户应该能够在用户表单中选择的工作表。 就我的测试而言,目前有两种选择:
- 在用户窗体上放置两个组合框,每个组合框都有静态值(一个用于文件名,一个用于工作表名称)。由于 Import-Sheets 将始终是 selected 类型,并且工作表在将来都应具有相同的名称才能工作,但前提是始终满足这些条件。
- 用户窗体上的一个组合框,它显示要导入的工作簿的工作表名称(因为无论如何我都必须打开它以将值复制到主工作簿,应该可以解析工作表名称进入组合框)。
使用 VBA 是否有可能实现我想要实现的目标?
到目前为止,我还无法将工作表名称获取到 ComboBox 中并导入数据。
这里有一个简短的例子:
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
'Show and check whether file is selected
If .Show Then
'you might wanna check if an excel workbook has been selected, or filter the filedialog upfront
Dim wbSource As Workbook
Dim ws As Worksheet
'Open Workbook
Set wbSource = Application.Workbooks.Open(.SelectedItems(1))
'Loop through the available sheets
For Each ws In wbSource.Sheets
MsgBox ws.name
Next
End If
End With
这应该可以帮助您入门 - 不要显示名称,只需将其添加到您的组合框中即可。 之后,您可以通过复制和粘贴
继续导入 sheet