设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2080|回复: 2
打印 上一主题 下一主题

[与其它组件] 【源码】Access获取excel文件的工作表名

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2015-4-11 10:40:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 盗梦 于 2015-4-11 11:45 编辑

1.可以通过OLE对excel.application操作,这个方法论坛有,大家可自行搜索一下, 如下面的示例

Excel中sheet相对应的VBA对象就是Worksheet。一个Worksheet对象,就代表了一个excel sheet。
VBA中,即可以取得当前Excel的sheet,也可以别Excel的sheet。
Worsheet的取得,通过Application对象,或者Workbook对象,Worksheets属性来取得。
格式
012
Dim sheet As Worksheet Set sheet = Application.Worksheets(index)

上面的代码,取得现在使用中的Excel的所有sheet中的某个。如果想取得所有Excel中的某个sheet。如下代码
012
Dim sheet As Worksheet Set sheet = Worksheets(index)


2.直接用ADO来获取,更方便 更快。
如果没有安装excel
xls = "C:\Users\root\Desktop\test.xls"

strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & xls & ";Extended Properties=""Excel 8.0;"";"

Set AdoCnn = CreateObject("ADODB.Connection")
AdoCnn.Open strConnect
Set rs = AdoCnn.OpenSchema(20)
Do Until rs.EOF
    msgbox rs.Fields("table_name")
    rs.MoveNext
Loop
AdoCnn.Close
不过使用 ado有个小问题是会 把名字中的点.替换为#,如果结果中出现#则无法得知确切名称
另取到的工作表名后面可能会有一个$号,要用代码处理一下


其它可能的问题
测试发现的几个小问题:
1、得到的列表没有按照原来的顺序,被排序了。
2、行尾多了$符号。
3、有空格的sheet的行首和行尾还被加了单引号。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2016-3-15 16:29:26 | 只看该作者
好像很高深的样子,不知道能不能学会
3#
发表于 2016-3-26 10:10:29 | 只看该作者
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-4 13:37 , Processed in 0.080857 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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