因为自己在工作当中很少用到Excel,更别提其中的函数,宏,VBA功能的娴熟使用了,所以每次同事问我相关的问题时,我都当作是一次学习的过程。这两天翻了一下Excel VBA的资料,初步了解如下:

1. VBA 与 宏的区别

   宏:是指一组指令,或一组动作的结合。它在代码中的形式是以 sub 过程名 ()开头,以 End sub 结尾。其实理解宏最好的方法是“录制宏”,在“开发工具”点击“录制宏”

命名宏名为“clear”,

vba sub 和function的区别 vba和函数的区别_面向对象

然后选择Excel中工作表中的A栏,并右键单击选择“清楚内容”,然后停止“录制宏”,这时你就可以在“宏”“编辑”,看到“clear”这个宏的代码了:

vba sub 和function的区别 vba和函数的区别_面向对象_02

其实“宏”可以分配给相应的控件,比如在工作表1(注意不是在VBA中建立)建立一个Button1控件,就可以给它分配“clear”这个宏,所以当你以后单击Button1这个按钮是,A列的所有数据都会清除

vba sub 和function的区别 vba和函数的区别_面向对象_03

 

而VBA其实就是Visual Basic For Application的简称,是一个面向对象的编程语言,我想好多同事在大学中都有学过这么语言。微软在Excel 中就集成了这个语言,可以给Excel做一些数据方面的开发,因为Excel本身也是面向对象的。在一般的日常工作,很少人会在Excel中用到VBA开发。

 

2. 既然谈到面向对象,VBA中(或Excel中)不仅有对象,还有对象的属性,对象的方法,对象的事件

引用Excel中对象很简单,例如引用工作簿mybook.xls 中 mysheet工作表的A1到D10的单元格,可以写成 application.workbooks('”mybook.xls”).worksheets.(“mysheet”).range(“A1:D10”).

对象的属性: 例如工作表1的名称

方法:就是在对象上执行的某个动作,例如 rang(D1:F:).select   选择D1:F1这些单元格

事件:针对某个对象的一次操作(动作),例如单击“Button”按钮(可以触发一段代码)

 

3. 数据类型,与其他编程类似,有整型,字符型,日期等等

   变量,定义变量的格式是  Dim a as 数据类型, 其中变量的作用域可以是在一个工程中(用Dim或Static申明),可以在一个模块中(用Dim或private申明)或所有模块中(用public申明)

 

4. 控制程序流程的语句,例如If,select case, For next, For each, Do while, Do until, GO to 等等

 

5. 可能经常混淆VBA中的窗体控件,工作表中的Form 控件, 以及Active 控件

 

VBA中窗体控件于下图:

vba sub 和function的区别 vba和函数的区别_面向对象_04

 

在工作表中的Form控件和Active 控件于下图:

vba sub 和function的区别 vba和函数的区别_开发工具_05

vba sub 和function的区别 vba和函数的区别_控件_06

vba sub 和function的区别 vba和函数的区别_面向对象_07


转载于:https://blog.51cto.com/aleven/545505