excel vba做出一个打开文件对话框:

选择文件后 自动复制打开表的数据到本工作薄,并关闭已经打开文件的文件!

Sub SelectFile()
Application.DisplayAlerts = False
fil = ThisWorkbook.Name
Filename = Application.GetOpenFilename("Excel 文件 ,*.xls;*.xlsx")
If Filename <> False Then
aFile = Split(Filename, "\")
sfilename = aFile(UBound(aFile))
End If
Workbooks.Open (Filename)
Workbooks(sfilename).Sheets(1).Cells.Copy Workbooks(fil).Sheets(1).Cells
Workbooks(sfilename).Close
Application.DisplayAlerts = True
End Sub追问

更改文件名字还能用吗?

追答

可以啊,重新选择就行
你可以自己试试嘛

对了,这是默认复制第一个工作表的内容
如果需要复制其他的,更改这条
Workbooks(sfilename).Sheets(1).Cells.Copy Workbooks(fil).Sheets(1).Cells

追问

打开所有文件,更改哪个?还有 点取消 清除错误提示

追答

这只是打开一个指定的文件,如果是打开一个文件夹中的所有文件,就不需要用打开对话框了,直接指定文件夹,遍历所有文件就行了
取消错误,可以增加一句On error resume next

追问

我的意思是打开包括所有拓展名的。不是非得制定xls或者xlsx的,我有个文件是lag格式的能用excel打开,取消错误:On error resume next 加在哪里

追答

Sub SelectFile()
Application.DisplayAlerts = False
On Error Resume Next
fil = ThisWorkbook.Name
Filename = Application.GetOpenFilename("所有文件 ,*.*")
If Filename False Then
aFile = Split(Filename, "\")
sfilename = aFile(UBound(aFile))
End If
Workbooks.Open (Filename)
Workbooks(sfilename).Sheets(1).Cells.Copy Workbooks(fil).Sheets(1).Cells
Workbooks(sfilename).Close
Application.DisplayAlerts = True
End Sub
这样就可以打开所有文件
但是,不能保证打开文件后能够正确复制
因为程序原理是复制Excel表格中的第一个工作表
如果复制对象不是Excel认可的格式,可能会出现找不到对象的错误。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-11-05
Sub 打开()
Application.Dialogs(475).Show '‘文件-打开’对话框
End Sub

VBA(Excel或Access)使用文件对话框FileDialog的几种方法
方法一:使用Excel或Access内置的Application.Filedialog进行操作,允许多选文件。在Excel中,通过Sub UseFileDialogOpen()函数实现。首先打开文件对话框,设置为允许多选,然后显示对话框。通过循环处理每个文件路径名,弹出消息显示选择的文件路径。方法二:利用CommonDialog对话框控件实现文件选择,通过CommonDialog...

Excel VBA 进阶—— 打开文件方法:GetOpenFilename方法
GetOpenFilename方法是Excel VBA中的关键工具,它能显示"打开"对话框,让使用者选取文件进行后续操作。值得注意的是,此方法不会自动打开文件。使用语法:GetOpenFilename方法包含四个参数,确保使用者能够灵活操作。实际应用:GetOpenFilename方法常用于选择多个文件,并通过open方法执行文件操作,如多文件合并...

excel文件打开时 vba满足条件弹窗提醒
步骤1:打开您的Excel工作簿,然后单击开发工具选项卡下的“Visual Basic”命令,或者只需按“ALT + F11”快捷方式。步骤2:然后将出现“Visual Basic编辑器”窗口。步骤3:双击VBAProject窗格下的ThisWorkbook对象,将会显示“ThisWorkbook”的代码窗口。步骤4:将以下VBA宏代码复制并传递到代码窗口。Private...

excel文件打开时 vba满足条件弹窗提醒?
一、用工作表的大名写:Private Sub Workbook_Open()If Application.CountIfs(Sheet1.Columns("B"), ">25", Sheet1.Columns("C"), "否") Then MsgBox "请进行报备", 48 End Sub 二、用工作表的小名写:Private Sub Workbook_Open()If Application.CountIfs(Sheets("月报表").Columns("B"),...

Excel VBA和文件夹-1.7通过对话框灵活选定文件夹并打开对应文件
首先,我们创建一个对话框,让用户直接在VBA中选择所需的文件夹,无需预先指定路径,代码如下:对话框代码部分:这部分代码的作用是打开文件选择对话框:vb Sub OpenFolder()Dim fdlg As FileDialog Set fdlg = Application.FileDialog(msoFileDialogFolderPicker)If fdlg.Show = -1 Then '如果选择打开...

如何让excel工作簿打开时出现欢迎到来的对话框:(VBA)
方法如下:1.打开所需要的excel工作簿,ALT+F11打开 visual basic 编辑器 2.在visual basic 编辑器里,点 "视图"-"工程资源管理器"(快捷键Ctrl+R),双击左侧的"Thisworkbook",粘贴上代码 Private Sub Workbook_Open()MsgBox "欢迎光临"End Sub 保存后关闭,重新打开就行了 ...

Excel VBA打开工作簿
打开另一个Excel文件,添加模块和过程,命名为“打开文件”。在过程中输入:Workbooks.Open,用于打开工作簿,但直接执行会报错。添加必要的参数Filename:="D:\\test\\test.xlsx",找到D盘test文件夹下的文件,执行后成功打开test.xlsx文件。在打开的工作簿中,通过ActiveWorkbook.Sheets(1).Range("A2") =...

Excel中用VBA写一个判断并弹出对话框
1、首先我们打开一个excel,这里建议使用office excel,因为wps的excel开发工具中的VBA是灰色的,还需要下载相关的插件,如下图所示:2、接着我们在最上边的菜单栏中找到开发工具,然后找到Visual Basic,我们点击一下,就会出现一个新的页面,如下图所示:3、当然出现新页面也有一个快捷键就是alt+f11,...

Excel VBA 运行一个宏,可以打开对话框选择档案,并将选择的工作簿里的...
既然仅转换格式,对内容无需改动,那就用:set wb = Workbooks.open(filetoOpen)wb.saveas replace(filetoopen, ".csv", ".xlsx") , xlOpenXMLWorkbook wb.close 以上三行代码要放到:MsgBox "选中了" & fileToOpen & "文件" 这一句的下面 ...

利用VBA选择并打开多个工作簿文件
下面的VBA代码先用Application.GetOpenFilename方法显示“打开”文件对话框,然后打开所选择的一个或多个Excel工作簿文件。Sub OpenWorkbooks()On Error Resume Next Dim SelectFiles As Variant ‘显示打开文件对话框 SelectFiles = Application.GetOpenFilename("Excel 文件 (*.xl*)," "*.xl*", ,...

相似回答