将文件导入当前VBA工作簿

将文件导入当前VBA工作簿,vba,Vba,我正在尝试构建一个VBA宏,以允许用户从“文件”对话框中选择一个文件,并将工作表1从该文件导入活动的VBA工作簿,并将该工作表重命名为“导入”。我是新来的,这是我能做的。这允许我打开“文件”对话框并选择一个文件。但它所做的只是打开文件,这并没有多大帮助 Sub OpenAFile() Dim fd As FileDialog Dim FileWasChosen As Boolean Set fd = Application.FileDialog(msoFileDialogOpen) fd.

我正在尝试构建一个VBA宏,以允许用户从“文件”对话框中选择一个文件,并将工作表1从该文件导入活动的VBA工作簿,并将该工作表重命名为“导入”。我是新来的,这是我能做的。这允许我打开“文件”对话框并选择一个文件。但它所做的只是打开文件,这并没有多大帮助

Sub OpenAFile()

Dim fd As FileDialog
Dim FileWasChosen As Boolean

Set fd = Application.FileDialog(msoFileDialogOpen)

fd.Filters.Add "Any Excel Files", "*.xl*"

FileWasChosen = fd.Show

If Not FileWasChosen Then
MsgBox "You didn't select a file"
Exit Sub
End If

fd.Execute

End Sub

你就快到了。这里有一种方法。这有点复杂,我知道还有更巧妙的方法,但它会完成工作

Sub OpenAFile()

Dim fd As FileDialog
Dim FileWasChosen As Boolean

Dim homeWorkbook As Workbook
Set homeWorkbook = ActiveWorkbook

Dim targetBook As Workbook
Dim targetSheet As Worksheet

Application.DisplayAlerts = False

Set fd = Application.FileDialog(msoFileDialogOpen)
fd.Filters.Add "Any Excel Files", "*.xl*"

FileWasChosen = fd.Show

If Not FileWasChosen Then
     MsgBox "You didn't select a file"
Exit Sub
End If

fd.Execute

Set targetBook = ActiveWorkbook
Set targetSheet = targetBook.Worksheets(1)

targetSheet.Copy After:=homeWorkbook.Sheets(homeWorkbook.Sheets.Count)
targetBook.Close

Application.DisplayAlerts = True

With homeWorkbook.Sheets(homeWorkbook.Sheets.Count)
    .Name = "Import"
End With


End Sub
可能是。。。。