打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如果你是学习Excel的朋友,对VBA这个应该概念不陌生吧?

本文转载自公众号:Excel教案,作者:甘亮。

      我们应该都知道Excel VBA的功能比较强大,但是对于刚开始学习的我们来说,面对那一串串英文代码,你是不是看得头昏脑胀?想去学希,然和茫然久久不能找不到学习入口?

      在这里,和大家分享自己的学习经验,和大家一起学习,共同进步。对了,还要告诉大家,我也是初学者,不是高手,如果有什么说得不对的,希望大家及时指出。我的目的并不是教学,而是期望创造一个学习Excel VBA的氛围! 记住一个共同的目标——掀开那层神秘的面纱,看看VBA的真实面目。

       首先我们要学习什么是VBA?就的先去了解他的真实面貌,VBA是Visual Basic For Application的简称,具体说来,可能让几天几夜也都说不完,你应该也知道VBA是建立在Office中的一种应用程序开发工具,其实知道这也就够了。

     Excel本身的内置函数其实已经很强大了,甚至有人说,只要学会二三十个函数,就已经可以满足普通用户日常的工作需求。那我们为什么要学VBA?

      是的,如果只需要满足一些普通的工作需求可能永远也不会用到VBA,但在实际应用的过程中,人们的操作却越来越大,需要也越来越高,这时候就需要用VBA来对Excel进行二次开发了,VBA可以有效地自定义和扩展Excel的功能。但有一点想要告诉大家,VBA功能很强大,但并不是万能的,也并不是所有工作都需要用VBA来解决,也并不是所有工作用VBA来解决都会很简单,这要根据实际情况而定,有些工作你用VBA来解决的话相反会变得很麻烦。

      换一种语言表达出来说VBA不是一种程序语言吧, 不公平, 它的确提供了程序语言能完成的功能; 说它是, 和现代程序语言相比功能又很不完整。说它不是面向对象的语言吧, 它有类模块, 提供部分类的功能; 说它是面向对象的吧, 类的最只要的特点又不具备。当然了,这些主要都是从VB6继承过来 的'遗传病'。所以通常的结论:'基于对象, 但非面向对象'。MS早就停止VB6的升级了, MS对VB6的放弃直接导致了VBA的功能不会在本质上变得更加强大, 但未尝不是一件好事,作为使用者不用整天跟着屁股后面学习新的功能。事物发展就是这样的,在解决了一个问题的同时又带来另一个新问题。    

          设计VBA就是面向'终级用户'类似于数据透视表的'office 高级应用工具', 以脚本的形式存在, 用来达到'自动化驱动office来完成规律性, 重复性任务'的目的。严格来讲VBA不是为了'开发'而是为了'应用', 并不是说完全做不到二次开发, 但和 MS 设计 VBA 的本意不相符甚至是背离。更加不是"无所不能"的程序语言,有太多的事是 VBA 实现不了的,严格来说它都不是一种程序开发语言,只能算作脚本。他和API函数结合可以做到,很多VBA不能完成的事情。

PS:API函数当然有用,开发图形库必须用它!

我们下面说说VBA的优缺点:

1:作为程序语言和其他开发语言比较,VBA的特点:

(1)'天然'强大的输入输出平台,Excel的控件功能非常强大

(2)使用便捷,无需搭建任何环境,随时可以用,无需保存,编译,即可运行;代码数据一体化(同时也是'缺点'),发布简单,无需运行环境。

(3)简单易懂,门槛低,学习周期短

2:VBA的'缺点'

(1)不好封装

(2)需要宿主解释器的解析,所以速度慢

(3)安全性差

(4)无法提供面向对象的结构式编程方式

(5)单线程

PS:上述'缺点'基本上是脚本语言具有普遍性的'通病',显然VBA就不是针对完成上述功能而设计的。VBA最大的缺点明明就是不能在windows以外的平台使用,像Mac上的Excel,虽然有vba,但是基本只能发挥30%不到的功能,字典这种需要调用windows系统里面功能的东西就没法用了,包括正则表达式,调数据库、fso文件之类的东东。

新手学习的几点建议

1:调试 地方窗口,立即窗口,观察窗口,F1(帮助),F2(属性方法),F8(分步执行)途中诊断:断点,stop等等。

2:分拆  语句分拆长而难懂的句子分拆成基本单元,利用调试功能一个个解决,很容易就理解了它的含义。

3:耐心  学习目的明确≠急于求成。学习的进程总是遵循渐进式的规律,跳跃式的一夜暴富只能是空中楼阁,所以耐心在学习过程中就显得尤为重要。

我们每次如果要开始写程序,首先先想下正常处理数据的过程,然后在转换成vba数据处理的过程,仅此而已。每次用到的Excel VBA无非就是以下几种方法:

 (1)对象的使用方法,当我不知道代码怎么去写的时候,我们知道录制宏就可以,然后可以调用Excel内置应用;

 (2)程序语法类:循环,判断,字符串,文件操作等;

  (3)数据处理的方式,数组,字典

 (4)界面,系统等等;这个用的比较少。

  (5)类模块;

        学会了循环,判断,字典,能应用到日常工作中,将繁琐重复的部分交给电脑,就没继续深入研究了,因为够用就好学以致用最重要,会的再多用不到也是白搭,一个人精力有限不可能所有东西都学会。

     另外需要说的一点是,其实VBA效率不算高,复杂程度不算低,总体给人感觉一般。但是任何一个工具只要熟练了,那就是你最好的工具。相信,实践,理解,这可谓是工具认知的一条康庄大道。

      我们学习Excel VBA的内容充其量内容就这么多了, 学习VBA是可以有止境的, 差不多的时候是完全可以收手的, 就算这些内容也完全不用全部学会, 够用就可以收手。写这个程序,其实最主要的是思考如何用程序语言去完成,因为VBA其实操作方法和语句不多,知道如何操作了,就知道如何去写代码。另外送一句话给我们的初学者,看书上的代码再多,再简单,也要自己尝试去写。我们不怕遇到错误,就怕你不敢去迈出那一步。只要你迈出了前进的那一步,你坚持下去了,就会发现胜利终究会属于你的。

 用一句话来总结:'程序的本质是用机器来解放劳动力,而不是用劳动力解放机器!'

唯有不断学习,才能不被淘汰!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
写给初学者的随笔: 相信, 实践, 理解
excel中VBA基础入门介绍
提升Excel办公效率的秘诀,都在这里了!
VBA概述之在Office产品中创建自己的应用程序
写给VBA初学者的随笔: 相信, 实践, 理解(二)
EXCEL加载宏基础
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服