ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1973|回复: 7

[讨论] 请教:加载宏与工作簿宏VBA谁更适合(见笑,问题太菜)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-4-21 11:02 | 显示全部楼层 |阅读模式
本人没有使用过加载宏,对加载宏不了解。工作中做了一个程序,有几个问题困扰,请教大家,出出主意:
   1、此程序给几十个下级单位使用,每个下级单位又有几十上百个下级单位,考虑操作人员水平问题及数据量,需要每个下级单位都要建一个工作簿,以免操作人员将数据混淆。
   2、由于功能要求有点多,菜单及工具栏命令超过40个,且数据较多,工作表有10多张,数据库工作表5张,模板及输入类工作表10多张,造成工作簿很大(录入数据后,每个明细单位的工作簿都超过1M),使用人员反映保存速度太慢(如果为了安全,录入一个数据就保存一下,速度更慢,录入很多数据再保存,操作人员经常误操作造成录入的数据没有保存)。当然,重要原因是本人水平有限,写的是垃圾程序。
   3、由于时间很紧,写了部分功能就交给下级使用,版本都升级了多次,目前的方式要求操作人员将每个工作簿都要升级,虽然有批量升级(对选择的文件夹批量升级),但依然很不方便。
由于以上三点,必须解决工作簿太大、保存速度提速、升级方便的问题,我准备:
   将数据和程序代码分离,将程序代码、模板、录入界面做成加载宏,每个明细单位的工作簿只作为数据库,保存数据,打开明细工作簿时通过加载宏来实现各种功能。
   由于本人实属菜鸟,加载宏没用过,请教各位高手:
   据说调加载宏的模板、录入界面工作表速度并不快,用加载宏好,还是目前方式?

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-21 11:14 | 显示全部楼层
也许这个问题不能提起大家兴趣。太菜了哈。

TA的精华主题

TA的得分主题

发表于 2009-4-21 11:52 | 显示全部楼层
建议用独立的程序,不用加载宏

TA的精华主题

TA的得分主题

发表于 2009-4-21 11:30 | 显示全部楼层
可能你的要求工作量很大
楼主把附件上传,或者分为几个模块求助更有助于解决问题!

TA的精华主题

TA的得分主题

发表于 2009-4-21 11:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你的数据量太大,据我的经验,只要是使用EXCEL作为数据库,数据一旦上千,速度就存在问题了。我曾经写过类似的程序,发现当数据达到5000以上后,简直受不了,后来没办法,改为ACCESS作为数据库,数据达百万也没什么问题。
建议:
使用VB写主程序,界面。最后还可以将VB编译成EXE文件,使用起来方便多了。
其实VB和VBA差距不大,有一定VBA基础,随便买本VB的书就OK。实在不行也可以使用VBA。
使用ACCESS 作数据库
使用EXCEL保存你所要输出(查询)的结果
可以查询一下本人的相关帖子。http://club.excelhome.net/viewth ... 4165&highlight=

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-21 11:47 | 显示全部楼层
谢谢哈
我设想的是将我现在已做好的改成加载宏,当然工作量很大。
困扰我的是用加载宏可不可行(虽然过去没用过,但学一下也可做,有点自大哈)
因为在使用时:
1、首先要判断打开的工作簿格式是否符合要求,才能启动加载宏。
2、在执行加载宏的功能时,录入、修改数据时要调用加载宏里的录入界面工作表,录完后再保存到数据库工作簿之中。打印时要调用调用载宏里的模板工作表(由于打印机有区别,还要设置加载宏里的模板工作簿的页面设置),生成新的报表供查询或打印。
这些功能现有都已实现,我想请教的是用加载宏是否更好?

TA的精华主题

TA的得分主题

发表于 2009-4-21 12:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
既然你坚持使用VBA,又要解决:由于以上三点,必须解决工作簿太大、保存速度提速、升级方便的问题,
再给你一点建议:
1、将工作簿分类,甚至分目录保存,不需要将所有的数据都放在一个或少数几个工作簿中。
2、子目录、工作簿规则命名,通过文件名可以辨别是哪个二级、三级、四级单位的哪类数据。
3、将程序保存在一个工作簿中,数据保存在其它工作簿中,通过程序工作簿控制数据工作簿,这样你升级时就方便了。
4、根据需要,从原始数据库为查询、生成结果保存到另外的文件中。结果文件可要可不要,只要原始数据在,生成结果就不成问题了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-21 13:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
其实每个明细单位的数据并不多(一个明细单位的数据库只有200K左右),只是录入界面和报表模板太多,造成工作簿太大(没有数据的都有1M),由于改动频繁,需要随时保存,因此影响速度。
7楼的建议不错,谢谢哈,考虑借鉴。但有一个问题,两个工作簿存在随时交换数据,如套打报表时(从四个数据库工作表中生成),操作员选择起始打印编号,要一次打印很多张,速度不知道如何?
我是菜鸟,用一个笨办法,打开程序工作簿后选择相应的操作单位数据库,将数据库中存放数据的工作表复制到程序工作簿中,这个单位操作完后又复制回去,更新数据库(打印后也需要更新数据库),这个速度又如何?哪一种方法更快一点?好像不行,因为保存数据库文件速度很快(一个明细单位的数据库只有200K左右),保存程序文件很慢(没有数据的都有1M),这种方法必须要保存程序文件,最后一次性保存到数据库文件中。
不知还有没有更合适的方法?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-29 08:13 , Processed in 0.036581 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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