怎样把多个excel文件导入一张access表里
来源:百度知道 编辑:UC知道 时间:2024/06/05 19:02:21
解决问题的脚本如下,只好贴这里了
Option Compare Database
Function cwrMacro1()
On Error GoTo cwrMacro1_Err
Dim myDialog As FileDialog, oFile As Object, strName As String, tabName As String, n As Integer
Dim FSO As Object, myFolder As Object, myFiles As Object
Dim fn$
Set myDialog = Application.FileDialog(msoFileDialogFolderPicker)
With myDialog
If .Show <> -1 Then Exit Function
Set FSO = CreateObject("Scripting.FileSystemObject")
Set myFolder = FSO.GetFolder(.InitialFileName)
Set myFiles = myFolder.Files
For Each oFile In myFiles
strName = UCase(oFile.Name)
strName = VBA.Right(strName, 3)
n = VBA.Len(oFile.Name) - 4
tabName = "xlsInputTab"
If strName = "xls" Or strName = "XLS" Then
I
你说的几个Excel文件的数据格式应该要是一样的吧?
不然脚本要写很多标题行配对的程式!
第一假设是一样格式的!
另外, 除非你有几百个Excel文件的路径,文件名,工作表名称的清单,
不然,自动打开几百个Excel文件是不可能的。
有的话可以用
从 A 列输入文件路径及名称,B列输入工作表名称
Dim x as Long, sht as Worksheet, openSht as worksheet
set sht = ActiveSheet
For x = 2 to Range("A2").Selection.End(xlDown).Row
Workbooks.Open Filename:= sht.Cells( x, )
Set sht = worksheet( sht.cells( x, 2))
...
Next
又假设你没有这个清单!
所以,你只能做的只是每个Excel文件打开!
1。你先导入第一个Excel文件到 Access.
2。打开Access那个导入表
3。 打开第二个 Excel 文件,选好你要导入的范围,按Ctrl-C;
4。 转到Access,选取添加记录那一行,按Ctrl-V;
5。 关闭第二个 Excel 文件;
重复 3-5 对其余 几百个文件的导入。
若Access 文件在共享文件夹内的话,可以几个人一起做,一人做50-100个文件。
我相信一个15-30分钟便可以可以完成。
够详细了吗?
这个是没办法的啦。。。不过有个不是方法的方法,就是你去下载个按键精灵,把所有的EXCEL文件放到一个文件件里,然后编个按键精灵的宏,让它打开EXCEL,然后导入,关闭,在放入回收站或者别的文件夹,这样原来那个EXCEL的文件夹里又是一个新的文件在原先的位置了,就可以重复按键精灵的宏,不知道行不行