获取Excel VBA的文件位置和名称

我正在创build一个VBA程序,将从一个文件复制一列到另一个。

当前的代码有效,但是我希望将其更改为出现提示的位置,并询问用户文件的位置和名称/扩展名。 该input将作为Workbooks.Open函数的文件位置导入并从此处导入。

如何创build一个提示,要求用户input所需的Excel文件的文件位置和名称,并将其input到Workbooks.Open函数中?

码:

Sub Macro1() Dim wb1 As Workbook Dim wb2 As Workbook MsgBox "Now converting data from Incident Data to Specific Data " 'Set it to be the file location, name, and extension of the Call Data CSV Set wb1 = Workbooks.Open("Z:\xxxx\Call Data - Copy.csv") 'Set it to be the file location of the Working File Set wb2 = Workbooks.Open("Z:\xxxx\Working File.xlsx") wb1.Worksheets(1).Columns("E").Copy wb2.Worksheets(1).Columns("A") wb1.Worksheets(1).Columns("I").Copy wb2.Worksheets(1).Columns("Q") wb1.Worksheets(1).Columns("AE").Copy wb2.Worksheets(1).Columns("R") wb1.Worksheets(1).Columns("BD").Copy wb2.Worksheets(1).Columns("F") wb2.Close SaveCahnges:=True wb1.Close SaveChanges:=True End Sub 

我会用FileDialog去select一个input文件:

 Dim fDialog As FileDialog, result As Integer Set fDialog = Application.FileDialog(msoFileDialogFilePicker) fDialog.AllowMultiSelect = False fDialog.title = "Select a file" fDialog.InitialFileName = "C:\" fDialog.Filters.Clear fDialog.Filters.Add "Excel files", "*.xlsx" 'Show the dialog. -1 means a file has been successfully selected If fDialog.Show = -1 Then Debug.Print fDialog.SelectedItems(1) End If 

为了节省您可以参考这个职位

编辑:

在Workbook中使用它。打开你只需要做如下的事情:

 Dim fname As String If fDialog.Show = -1 Then fname=fDialog.SelectedItems(1) Else MsgBox("Filename selection error") Exit Sub End If Set wb1 = Workbooks.Open(fname)