设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 快速获取Excel文件所有工作表表名

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2013-8-6 15:26:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
获取Excel工作表表名一般使用创建Excel.Application对象的方法,但速度比较慢。
使用dao的方法则可以快速获取,代码如下:
  1. '获取Excel文件所有工作表名称的过程
  2. Public Sub GetExcelSheetName()

  3.     Dim dbs As DAO.Database
  4.     Dim tbf As DAO.TableDef
  5.     Dim sSheetName As String
  6.    
  7.     Dim sFileName As String
  8.     sFileName = "d:\My Documents\个人文档\报名表.xls"
  9.    
  10.     ' 把Excel文件当作数据库用dao打开
  11.     Set dbs = OpenDatabase(sFileName, False, False, "Excel 8.0;")
  12.    
  13.     '循环所有表
  14.     For Each tbf In dbs.TableDefs
  15.         sSheetName = tbf.Name
  16.         
  17.         ' 如果表名是数字,两边会加上单引号,这里去掉
  18.         If sSheetName Like "'*'" Then
  19.             sSheetName = Mid(sSheetName, 2, Len(sSheetName) - 2)
  20.         End If
  21.         
  22.         '可能会返回很多表,但只有最后一个字符为$的表是可用和可见的,是我们需要的
  23.         If Right(sSheetName, 1) = "$" Then
  24.             sSheetName = Mid(sSheetName, 1, Len(sSheetName) - 1)
  25.             Debug.Print sSheetName
  26.         End If
  27.     Next

  28. End Sub
复制代码

本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖1 订阅订阅

点击这里给我发消息

2#
发表于 2013-8-6 15:32:36 | 只看该作者
好方法,的确比打开EXCEL快

点击这里给我发消息

3#
发表于 2013-8-6 15:39:09 | 只看该作者
学习了
回复

使用道具 举报

4#
发表于 2016-3-18 16:22:32 | 只看该作者
这个问题也是有些人常问的问题了,小宝好样的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-1 17:31 , Processed in 0.104794 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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