设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3288|回复: 7

[与其它组件] 【Access小品】各找各妈--Access运行Excel宏示例

[复制链接]
发表于 2015-1-21 16:38:16 | 显示全部楼层 |阅读模式
  我们经常需要用Access处理一些Excel表的事务,除了导入导出外,还会涉及到数据的整理等复杂问题。我们可以在Access中引用Excel的对象,来完成这些任务。但有时候这并不是最好的选择,其原因有二:其一是Access中使用Excel表对象时,一些自动的功能并不如Excel中实现的那么好,比较典型的是系统的枚举常量总是需要去猜或者到处找资料;其二是有些在Excel中用代码实现的功能,在Access的指挥下会失常,比如锁定单元格,锁定表,命名区域等等。如果你曾经折腾过这类问题,对此会深有体会。

  由此,我们希望在Excel中编写宏,然后在Access中来调用这些宏。假如这样能实现的话,也就各得其所,也就是各回各家各找各妈,发挥各自的优势。这个假设能成立吗?答案是肯定的。我们可以通过两个对象来调用Excel宏,其一是Workbook对象可以用RunAutoMacros方法来调用四个自动宏(启动、关闭、活动、不活动),当然这不太灵活;其二是Excel.Application对象,这个对象有一个Run方法可以运行宏,而且还可以带入30个以内的参数。

  本示例假设这样一种场景,在Excel表中有一个“原始表”需要进行整理,并在同一个工作簿中生产另外一个表,表名为“数据表”,这个数据表符合Access导入的规范。这个整理的工作由Excel中编写的宏(名为:数据整理)完成。Access窗体中设置一个按钮,按钮单击事件中首先调用Excel中的宏,对原始表进行整理,然后执行一段代码,将数据导入到Access的对应数据表中。

  当然,这只是为了演示宏的调用方法,并非这个示例一定需要这样处理。所以你不必说:“何必那么麻烦,我可以直接读原始表中的数据,并导入到Access。”


示例:


视图:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

本帖被以下淘专辑推荐:

点击这里给我发消息

发表于 2015-1-21 17:29:25 | 显示全部楼层
老汉高产啊
发表于 2015-1-22 09:49:10 | 显示全部楼层
好东西,赞
回复

使用道具 举报

点击这里给我发消息

发表于 2015-1-24 06:00:18 来自手机 | 显示全部楼层
好东西,赞
回复

使用道具 举报

发表于 2016-4-2 22:19:55 | 显示全部楼层
经典呀,下载学习一下!谢了
发表于 2016-7-7 17:07:16 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2016-7-30 15:31:25 | 显示全部楼层
这个粟子实在,顶一个
发表于 2016-8-20 15:33:11 | 显示全部楼层
已经下载学习,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 20:14 , Processed in 0.105052 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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