设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 8362|回复: 15
打印 上一主题 下一主题

[其它] (急)如何将1个EXCEL的很多个SHEET批量导入到ACCESS?

[复制链接]
跳转到指定楼层
1#
发表于 2006-12-30 23:08:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SHEET的格式绝对是一样的,名字是没有规律的。各位高手请赐教!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-12-30 23:12:00 | 只看该作者
是想把所有SHEET表一起导入,还是选择后才导入
3#
 楼主| 发表于 2006-12-31 01:13:00 | 只看该作者
一起吧,一键搞定的那种就行了。刚才去开了个会,没想到版主这么快回应,真是太感谢了!

[此贴子已经被作者于2006-12-30 17:29:48编辑过]

4#
 楼主| 发表于 2006-12-31 01:32:00 | 只看该作者
本来我已经学了一种多个EXCEL表导入的方法,结果数据拿来是一个EXCEL文件分了不同SHEET,真是头大。
5#
发表于 2006-12-31 17:07:00 | 只看该作者
Function IntoTable(StrPath&FileName As String)
    Dim i as Interger
    For i = 1 To N
        DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, StrTableName, StrPath&FileName, True, "sheet" & i
    Next
End Function

如果你希望看到示例,上传文件。

[此贴子已经被作者于2006-12-31 9:09:20编辑过]

6#
 楼主| 发表于 2006-12-31 20:59:00 | 只看该作者
不用示例我可以看懂。我改成这样了:

pathname = CurrentProject.Path


    For i = 1 To 78      

        DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "1~9月", pathname & "\指标.xls", False, "Worksheets(" & i & ")"

Next

End Sub

但是运行提示找不到 Worksheets[1],它为什么老把 ( 认成 [ 呢?用ascii码转换的也不行,郁闷ing......

[此贴子已经被作者于2006-12-31 13:07:13编辑过]

7#
发表于 2006-12-31 21:34:00 | 只看该作者
不能用sheets(i)这种形式,因为没有定义和引用excel对象。只能用shhet1,sheet2....这种方法。表名最好不要用数字开头,如"1~9月"。
For i = 1 To 78      
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "1~9月", pathname & "\指标.xls", False, "sheet" & i & "$"
Next



下面是自己总结的一般形式:导入多个结构相同的excel表的多个sheet(每个book可以有若干个sheet)

'取得某个文件夹内所有excel文件名
Function drhdb()
Dim strDir As String
Dim Strfiles As String
    strDir = Dir(CurrentProject.Path & "/*.xls")
    Do While Len(strDir)
        Strfiles = strDir
        intotbl CurrentProject.Path & "/" & Strfiles
        strDir = Dir
    Loop
End Functio

'导入函数
Function IntoTable(StrPath&FileName As String)
    Dim i as Interger
    For i = 1 To 3
        DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, StrTableName, StrPath&FileName, True, "sheet" & i & "$"
    Next
End Function
'解释:
'acSpreadsheetTypeExcel9表示EXCEL版本,默认为acSpreadsheetTypeExcel8或acSpreadsheetTypeExcel9 EXCEL97或EXCEL2000版本
'StrTableName 参数是指导入到ACCESS中的表名称;
'StrPath&FileName要导入的电子表格的带路径的全名;
'TRUE 是指 导入时第一行做为字段名来导入;


[此贴子已经被作者于2006-12-31 13:49:44编辑过]

8#
发表于 2006-12-31 22:04:00 | 只看该作者
论坛上有示例:“导入excel全部表用API实现打开文件窗体”

如找不到找我吧!我不知道如何加附件

xushuiqing@kerryeas.com

9#
 楼主| 发表于 2007-1-1 00:13:00 | 只看该作者
谢谢大家2006年的最后一天还能抽出时间帮助我!

但是运行那个代码系统会提示如下:

运行时错误'3125':

'sheet1$'不是一个有效的名称。请确认它不包含无效的字符或标点,且名称不太长。

请问是什么原因呢?

还有论坛上的示例文件到哪里去找呢?
10#
发表于 2007-1-1 02:11:00 | 只看该作者
把你的文件上传吧。过二个小时就有结果了。因为现在是晚饭时间。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-21 14:37 , Processed in 0.098709 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表