c调用excel vba宏中宏和VBA的优缺点

查看: 6017|回复: 5
基础知识普及:为什么需要宏和VBA?什么情况下需要宏和VBA?宏和VBA的区别是什么?
阅读权限10
在线时间 小时
初学Excel编程,大多数人搞不懂VBA和宏的关系,其实这两样是一回事。VBA是Visual Basic for Application的缩写,通俗说就是用VB对程序进行控制。宏,即Macro,个人认为这个翻译害了一群人,因为它把简单的事情搞高深了。宏的背后其实也是一堆VBA代码,只不过是由系统自动生成的。VBA和宏既然是同一个东西,都是基于VB代码以丰富Excel的功能。那么马上就会引出另外的疑问。1.& && & 我们为什么需要宏和VBA?2.& && & 什么情况下我们需要宏和VBA?3.& && & 宏和VBA的区别是什么?首先,我先回答第一个问题:“我们为什么需要宏和VBA?”并非想要上纲上线,但是从宏观的角度看,我认为,这是因为世界上不存在完美的事物,同样也不存在完美的软件。虽然微软通过升级在不断地完善Office系列软件的功能,使其标准功能已可以满足日常绝大部分的应用,但也逃不过这个规律。于是微软便聪明的整合了宏和VBA到它的产品中,给用户留下了可以自行去定义属于自己需求的软件的可能性(多说一句,WPS还需要继续努力啊,在这点上还差的太远了)。那么,什么情况下我们需要宏和VBA呢?形象的说,“宏”像一个机器人,VBA是用来制作宏这个“机器人”工具和零件。当我们遇到下列问题时,我们就可以想到使用它们了(可能不全):1.& && & 劳动强度大,重复性高的工作,比如每月报,周报等。2.& && & 对Office本身一些功能的细节控制与完善,如数据透视表(Pivot Table)等。3.& && & 和其它系统的交互,如数据库系统 。4.& && & …… 所有这些,我会在今后的文章中陆续讲到,也希望大家持续关注。值得注意的是,宏的录制和VBA的编写是需要时间的,一定要权衡是否需要做一个宏或者VBA。最后,VBA和宏的区别是什么?刚才已经提到了,“宏”像一个机器人,VBA是用来制作宏这个“机器人”工具和零件。如果再进一步说明,宏就像是一个录音机或者录像机,只是它所录制的是你的操作自动制作一个“机器人”给你。当你需要重复操作的时候,只需要按一下启动键,“机器人”就会开始干活儿,而你则可以喝茶,抽烟,喝酒,聊天, XXOO… …听起来很美是不是?仿佛不论你是否掌握VBA编程技巧,你都能利用宏去制造“机器人”。但是,你必须掌握VBA,这是因为:1.& && & 电脑不是人脑,至少目前还取代不了,有些时候一个微小的差别就会使你的宏失效,比如说文件名和文件结构的改变等。使得你尽心费力做好的宏可以被重复使用的可能性大大降低。2.& && &
“机器人”出了故障,你必须知道怎么修。3.& && & “机器人”中可能会存在很多可以被其它“机器人”重复使用的“零件”,只有掌握了VBA,你才能做到自己建造“机器人”虽然还有很多细节性的东西没有说到,但从我的经验来看,太长的文章看起来费劲,所以我也先在这里结尾了。希望这篇文章已经能够大体回答文章开头的疑问。其它的细节我会在今后的文章中一点一点的补充,也希望大家持续关注。
该贴已经同步到
阅读权限100
在线时间 小时
& & & & & & & &
可以把“宏”理解为能实现一定功能的“VBA代码”段
Macro是vba的超集&
阅读权限20
在线时间 小时
理解透彻,谢谢分享!
阅读权限100
在线时间 小时
不明白不要乱讲!
如果你研究了Excel软件或者Office软件的历史的话,你会发现在vba之前,还有若干种自动化操作方式,这些方式有的依然保留到现在,例如宏表、Excel5.0对话框等。
所以,Macro这个单词表示的是所有自动化操作office的方法的总和,包括VBA、宏表(实际是C API)、各种加载项所提供的函数及命令等等
阅读权限100
在线时间 小时
你没事看看维基百科,关于Macro,国内翻译成宏、台湾翻译成巨集;在某些书里面,把这个叫做脚本。
其实总结起来就一句话:把各种命令统一到一起,来执行批量批处理的命令的统称。
所以,即使在office里面,Macro也是VBA的超集,具体说明看四楼。
阅读权限100
在线时间 小时
liucqa 发表于
你没事看看维基百科,关于Macro,国内翻译成宏、台湾翻译成巨集;在某些书里面,把这个叫做脚本。
其实总 ...
在于“宏”的概念
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师面试碰到excel宏和vba问题,恳请大家指教,多谢_excel吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:120,558贴子:
面试碰到excel宏和vba问题,恳请大家指教,多谢收藏
以下两个问题What is your experience creating and trouble shooting macros? How do you prefer to create them, and in
what version of excel? Have you programming with VBA, to what detail?请帮我解释下应该怎么回答,我不太懂这个现在,不过正在学,其中比较不明白的是trouble shooting什么意思,是指碰到问题怎么更正还是怎么测试是否有问题?第二个如何创建,难道不止一种创建宏的方式吗?vba的那个, to what detail应该怎么回答呢?万分感谢!
这款游戏可以体验洪荒之力!我露出了迷之微笑
What is your experience你有经验 ....(在) creating设立 and trouble shooting macros? 及解决宏问题How do you prefer to create them, 你喜欢怎样设立 (宏)and in what version of excel? 你用甚麼 Excel 版本?Have you programming with VBA你有做过vba程式吗?to what detail?关於甚麼的
trouble shooting这两个字如果连用就解 "解决问题" 。单字解:trouble 麻烦shooting 发射(枪)
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或练习1 Excel宏与VBA语法基础_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
练习1 Excel宏与VBA语法基础
上传于||文档简介
&&E​x​c​e​l​宏​与​V​B​A​语​法​基​础
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢查看: 1918|回复: 11
宏和vba处理速度哪个快?
阅读权限10
在线时间 小时
我用宏进行一个3000多个工作表的插入行操作,发现处理速度挺慢,进行这一项工作就花了5分多钟。宏原则上也是vba。那直接应用vba会不会快点?
阅读权限95
在线时间 小时
& & & & & & & &
把附件发上来,看有没有可以优化的地方。
阅读权限95
在线时间 小时
一样的,关键看代码怎么写。
阅读权限95
在线时间 小时
& & & & & & & &
原帖由 ambby 于
19:15 发表
我用宏进行一个3000多个工作表的插入行操作,发现处理速度挺慢,进行这一项工作就花了5分多钟。宏原则上也是vba。那直接应用vba会不会快点?
正如你说的,宏和VBA所指的可以是一种东西,所以就不应讨论哪个快了。
一般来说,人们往往用“宏”特指Excel“录制宏”形成的程序,而用VBA特指手工编制的程序。
如果是这样,那么手工编制时,人可以对程序进行优化,优化后的程序一般都比“录制宏”的效果好一些。然而,很多情况下速度快一点并不一定是编程人员所苛求的,再加上可能编程人员对VBA不够熟悉,或者懒得敲键盘,这种情况下“录制宏”还是有优势的。
阅读权限30
在线时间 小时
4楼解释的不错。
阅读权限95
在线时间 小时
建议楼主查一查这个英语单词:macro
阅读权限100
在线时间 小时
这个就要看写代码的人的水平了,呵呵,不过我的目的,能做出结果就可以了
阅读权限100
在线时间 小时
VBA 代码的优化还是比较重要的!自从学习了 VBA 并在论坛里混了这两年,再回头看自己最初所写的代码还是觉得有很多不足的!
阅读权限90
在线时间 小时
& & & & & & & &
写VBA只要不犯两个错误,就慢不到哪里去
1 直接读写大量单元格,这是错误的,即使只有一万次读写,速度也将长达数分钟而令人无法接受,应该把所有单元格数据一次读入内存数组,处理完毕一次写回,这种做法即使对于100万数据,也就是几秒钟的事情(快1000倍以上)。
2 对比,查找等等操作用了遍历法,而不是用字典,很显然,所有数据都遍历一次,肯定比直接一次查询的字典慢,而且是有多少个数据,就慢多少倍!如果你不幸正在处理100万个数据,那么字典法就快100万倍。
[ 本帖最后由 灰袍法师 于
23:03 编辑 ]
阅读权限10
在线时间 小时
我的代码是这样的,有没有地方可以优化呢?
Dim i As Integer
Dim j As Integer
Dim intRow As Integer
For i = 1 To ThisWorkbook.Sheets.Count
& & ThisWorkbook.Sheets(i).Activate
& & Columns(&A:A&).Select
& & Selection.Find(What:=&profile&, After:=ActiveCell, LookIn:=xlFormulas, _
& && &&&LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
& && &&&MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate
& & intRow = ActiveCell.Row
& & If intRow & 31 Then
& && &&&Rows(intRow & &:& & intRow).Select
& && &&&For j = intRow To 30
& && && && &Selection.Insert Shift:=xlDown
& && &&&Next j
& & End If
而且我发现,即便是我没有运行宏,而只是编辑和保存,反应都很慢。我的那个workbook有70多m,是不是由于太大了?
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师查看: 2274|回复: 3
阅读权限11UID472048函数0 关最后登录经验2600 点在线时间73 小时VBA0 关分享记录好友技巧0 关相册主题段位1 段金币579 个积分2600精华0帖子日志注册时间
初中2年级, 积分 2600, 距离下一级还需 400 积分
金币579 个积分2600帖子
vba和宏有什么区别?
阅读权限5UID477196函数0 关最后登录经验747 点在线时间95 小时VBA0 关分享记录好友技巧0 关相册主题段位0 段金币207 个积分765精华0帖子日志注册时间
小学2年级, 积分 765, 距离下一级还需 135 积分
金币207 个积分765帖子
宏其实就是操作过程,VBA用代码来操作Excel。
阅读权限15UID80540函数0 关最后登录经验4393 点在线时间312 小时VBA0 关分享记录好友技巧0 关相册主题段位0 段金币4819 个积分4702精华0帖子日志注册时间
新手三班03版 A08
高中3年级, 积分 4702, 距离下一级还需 598 积分
金币4819 个积分4702帖子
本帖最后由 007feiren 于
10:20 编辑
宏是一个手工操作过程,而VB是一种程序语言,VBE就是VB语言操作EXCEL对象。
一种程序语言的特征是有基础语句,比如在VB中---循环语句有:DO .。。。LOOP,FOR 。。。NEXT ,WHILE。。。WEND;判断语句有IF 。。。THEN ;运算有OR ,AND等等。
宏只是代码方式记录的一个手工操作的过程,所有记录的宏中都不会出现程序语言基础语句。
而VBA中具备VB的基础语句,所以VBA是一种程序语言,一种操作Appication对象的VB程序语言。
所以宏&&VBA,这就是宏与VBA最大的区别。
学习持之以恒,向自己的极限挑战! /?fromuser=007feiren
阅读权限5UID485293函数0 关最后登录经验729 点在线时间59 小时VBA0 关分享记录好友技巧0 关相册主题段位3 段金币666 个积分740精华0帖子日志注册时间
小学2年级, 积分 740, 距离下一级还需 160 积分
金币666 个积分740帖子
Powered by

我要回帖

更多关于 excel vba 录制宏 的文章

 

随机推荐