Vba代码在同一工作簿的单独工作表中打开多个文件

我有一个代码,允许我在Excel工作簿中打开文件,但是我希望能够在同一个工作簿中打开多个文件,名为p00001,p00002 ,p00003等。有谁知道我可以如何编辑我的代码来选择所有以这种方式命名的文件,并在同一工作簿的不同工作表中打开它们?Vba代码在同一工作簿的单独工作表中打开多个文件

我的代码是:

Sub Open_Workbook() 

Dim my_FileName As Variant

my_FileName = Application.GetOpenFilename

If my_FileName <> False Then

Workbooks.Open Filename:=my_FileName

End If

End Sub

回答:

在这个解决方案,我用的FileDialog用于选择多个文件。 之后,你需要循环所有thoes文件一个循环。 在For循环中,您必须打开文件并导入工作表。在本例中,我导入了工作簿所有的表格。 代码完成导入后关闭源工作簿并对其余文件执行相同操作。

Sub Import Files() 

Dim sheet As Worksheet

Dim total As Integer

Dim intChoice As Integer

Dim strPath As String

Dim i As Integer

Dim wbNew As Workbook

Dim wbSource As Workbook

Set wbNew = Workbooks.Add

'allow the user to select multiple files

Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = True

'make the file dialog visible to the user

intChoice = Application.FileDialog(msoFileDialogOpen).Show

Application.ScreenUpdating = False

Application.DisplayAlerts = False

'determine what choice the user made

If intChoice <> 0 Then

'get the file path selected by the user

For i = 1 To Application.FileDialog(msoFileDialogOpen).SelectedItems.Count

strPath = Application.FileDialog(msoFileDialogOpen).SelectedItems(i)

Set wbSource = Workbooks.Open(strPath)

For Each sheet In wbSource.Worksheets

total = wbNew.Worksheets.Count

wbSource.Worksheets(sheet.Name).Copy _

after:=wbNew.Worksheets(total)

Next sheet

wbSource.Close

Next i

End If

End Sub

如果你想获得所有文件,您可以更改ApplicationFile对话与循环目录是你循环目录是这样的:

directory = "c:\test\" 

fileName = Dir(directory & "*.xl??")

Do While fileName <> ""

'Put Code From For Loop here.

Loop

以上是 Vba代码在同一工作簿的单独工作表中打开多个文件 的全部内容, 来源链接: utcz.com/qa/262466.html

回到顶部