您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 投融资/租赁 > ExcelVBA入门到精通
ExcelVBA从入门到精通【1.1VBA与Excel应用程序】1、看看下面吧:2、VBA不仅仅能在excel中使用,在其它的office应用软件里面也是可以使用的,比如word。【1.2使用Excel的宏】1、看看下面吧:看看用“图形对象”执行宏的例子吧:上图中所说的“清理宏代码”的意思是删除那些不需要的宏代码(因为在录制宏的时候可能会一同生成许多并不需要的宏代码)。看看对于宏的安全设置吧:2、在保存有宏代码的excel文件的时候,文件格式要注意,如果保存成普通的excel格式是不具有宏的功能的:3、如下图的代码中其实就是红色矩形中的代码有用,其它的代码是没什么作用的(录制宏的时候系统自动添加上去的),所以是可以删除掉的,这个就是“清理宏代码”的操作:【1.3VBE开发环境】1、看看下面吧:2、如下图中的“ThisWorkbook”指的是工作薄,而Sheet1、Sheet2、Sheet3指的是三个工作表。而我们录制的宏的代码都在模块里面:3、在代码编辑窗口中可以进行分割窗口、可以显示全代码或者每个代码单独显示等等操作:4、在输入对象属性和方法代码的时候有时候代码提示功能没有了,此时可以按“ctrl+j”来重新调出提示来:在输入命令的时候,想要在只输入了前几个字母的情况下想要让系统自动补全后面的字母的话,可以用编辑工具栏中的特定按钮来完成操作:【1.4第一个VBA程序】1、看看下面吧:2、看看上面例子的具体做法吧:首先创建窗体并添加按钮,然后摆放按钮的位置和改变按钮的标题和名字:我们先编辑“关闭”按钮的代码,双击这个按钮就可以写它的代码了(这个按钮的代码比较简单,所以我们先写它吧。双击这个按钮是编辑这个按钮的默认事件,按钮的默认事件是“Click”):再来编写“九九乘法表”的代码吧:我们来编写一个模块,为了实现往excel表格里面写入乘法表的功能:然后给“生成到工作表”按钮添加代码:最终的代码是如下图所示:3、我们在输入命令的时候如果拼写正确系统会自动把命令的首字母大写的,如果输入错误就不会首字母大写了,这个也是我们排错的一个方法(但是vba中关键字是不区分大小写的)。【1.5VBA基本概念】1、看看下面吧:2、如果没有指定枚举数据中元素的值的话那么它的默认值是从0开始的数字。如下图中的从“星期日”开始到“星期六”的值分别是0-6:3、注意枚举数据类型和用户定义数据类型必须要放在声明的部分:4、看看下面吧:如下图所示的strName就是模块级变量,下面的三个过程都是可以使用它的。而sex就是过程变量了,它只能在test1这个过程里面使用,在test2里面使用就会出错的。如果把strName声明成全局变量的话,那么在其它的模块中也是可以使用它的(的意思就是在声明变量的时候强制要指定这个变量的数据类型,如果不指定变量的数据类型是会报错的)。5、VBA中的英文字符是不区分大小写的。6、如果在声明变量的时候不指明变量的数据类型的话,这个变量就是变体类型的数据类型,也就是可以存储任何的数据类型的数据,这个我们后面的课程还会讲到的。但是如果用这种变体类型的变量可能会出现一些异常的,所以可以用“强制声明变量”,这样一来在定义变量时如果不给出数据类型的话系统是不会通过的。7、在运行程序的时候工程级变量和模块变量都是一直保存在内存之中的,所以我们才可以一直使用它,而过程变量会在这个过程结束后也就从内存中消失了。8、如果我们想要过程变量的值一直存在不消失的话就需要把这个变量用static声明成静态变量了(和工程级变量一样当excel文件关闭后静态变量才会消失的):【1.6VBA常用语句】1、看看下面吧:上图中的“值”是可以相加的,也就是让多个设置都生效,比如设置成50就是48和2都生效。2、看看例子吧:3、看看例子吧:4、看看下面吧:【1.7程序控制结构】1、看看下面吧:2、看看例子吧:下面是计算个人所得说的例子(我们可以在一个单元格内插入这个自定义的函数,那么程序就会自动计算出你给出的工资应该缴纳多少的个人所得税了):下图中的curPay变量就是实际的工资数(个人所得税是按照实际工资减去3500的部分按照不同的百分比征收的)看看嵌套分支结构的例子吧(Offset是一个偏移函数,是在当前单元格右边的单元格里面显示内容):3、看看下面吧:4、看看例子吧:【1.8数组】1、看看下面吧:2、看看下面吧:3、看看下面吧:4、看看例子吧:【1.9Sub过程】1、看看下面吧:2、看看例子吧:3、看看例子吧:【1.10function函数】1、看看下面吧:2、看看例子吧:当然也可以在excel表格里面插入function函数的:3、看看把数字金额转换为中文大写的例子吧:4、看看生成彩票号码的例子吧(randomize是随机数发生器,rnd()是生成一个0-1的随机数):这个函数返回的是一个数组,所以我们必须要用数组公式,也就是这个函数的两边加上了大括号了(也就是在公式栏输入这个函数名后按ctrl+shift+enter就是加上了大括号了,如下图所示):5、上例中如果想要每一位的数组都不能重复的话,就需要在生成每个数字的时候加上判断的条件了,也就是判断此数字有没有重复的,自己可以想一想。【1.11对象描述】1、看看下面吧:2、看看下面吧:【1.12excel对象模型】1、看看下面吧:2、我们不可能把所有的vba中的对象都记住,所以可以用帮助文档来学习每个对象的使用。3、看看下面吧:4、对象浏览器还可以查找函数和常数等等。【第13章Excel常用对象】1、看看下面吧:下图的例子就是看看打开屏幕更新后进行10000次单元格隐藏操作所用的时间,以及关闭屏幕更新后进行相同操作所用的时间,然后用MsgBox显示出来(进行的是偶数行的隐藏,其中就是隐藏屏幕更新的设置)。如果每隐藏一次单元格就进行一次屏幕更新的话就太麻烦了,所以有时我们需要进行一些操作后最后在进行屏幕更新操作:由上图可见关闭屏幕更新后程序的执行效率更高了。所以在进行很多数据操作的时候要注意使用这种提高效率的方式。现在我们把刚才隐藏的行再显示出来,注意此处使用关闭屏幕更新的方式同样会提高效率的:2、看看下面的例子吧:再看看吧:再看看吧:再看看吧:再看看吧:3、看看例子吧。下图中用with和endwith包含起来的内容,其中“.Name”就是表示with后面的对象的Name属性,也就是,这里用了with就是一种简便的写法了,除了name属性其它的也是同理。是一个错误处理,也就是当“onerror”包含的代码执行时出现错误的时候并不会报错,而是到下一行去执行,好像相当于异常处理了:再看看吧:4、表示一个A1到C1的单元格区域,而就表示A1这个具体的单元格了,也就是用冒号表示区域。5、看看下面吧:【1.14常用VBA代码】1、看看下面吧:此例子中我们用cell来引用单元格的,有时我们还会用到range来引用单元格,前者是用第几行第几列来引用的,后者是用具体的字符串来引用的。2、看看例子吧:看看下面吧:看看下面吧(此例中首先要把选中的一个区域命名为“MyRange”,然后对其进行操作):看看下面吧(三维区域指的就是同时对多个工作表进行操作):3、看看下面吧:看看下面吧:看看下面吧(下图中判断指定工作表是否存在的SheetExists函数不是系统提供的,而是我们自己编写的):看看下面吧:看看下面吧:看看下面吧:【1.15Excel的事件】1、看看下面吧:2、看看例子吧:3、看看下面吧:看看下面吧:看看下面啊:看看下面吧:看看下面吧:4、看看下面吧:5、看看下面吧:6、看看下面吧:【1.16自定义Excel2010功能区】1、看看下面吧:将这个文件改名为压缩格式的文件然后看看里面都有什么文件和文件夹吧,其实excel2010就是用xlsm这种格式来把多个文件进行压缩的。2、看看怎么自定义工作区吧,新建一个excel文件后首先插入一个模块并输入如下的代码:关闭工作薄,在这个工作薄同级目录下创建一个customUI文件夹,在这个文件夹里面新建一个文件,命名为customUI.xml:然后再把testfile.xlsm这个文件命名为testfile.zip,然后把customUI这个文件夹复制到这个压缩文件里面去:打开“_rels”这个文件夹里面的“.rels”这个文件,在里面添加如下图红色矩形所示的代码:然后再将这个压缩文件重新改名为“testfile.xlsm”,打开这个文件后我们就会发现这个文件增加了一个选项卡了:而且这个按钮还有插入内容的功能(就是我们前面编写的模块的功能):3、上面的操作只是我们从vba开发的角度来认识一下自定义工作区的编写步骤,其实在excel2010中我们可以通过简单的方法来实现的(在excel2007中可能是不行的):4、实际上“.exlm”文件格式是一个压缩的格式,里面保存了包括xml等的文件和文件夹的。【1.17创建工作表窗体】1、看看下面吧:下图中的“表单控件”指的是excel的控件,而“ActiveX控件”指的是vba中的控件,我们重点是讲“表单控件”的使用。2、在给按钮指定了代码之后再用鼠标左键单击它就会执行代码了,此时如果想要选中这个按钮的话就需要使用鼠标右键单击了(右键单击后就可以进行删除按钮或者修改按钮等操作了)。3、看看下面吧:组合框要显示的内容是一个单元格的区域,可以给组合框设置“数据源区域”。而“单元格链接”的意思就是单击这个组合框里面的内容后在哪个单元格里面显示所选择的序号(其它控件的“单元格链接”选项也是差不多的道理):4、我们来做一个例子吧,照着样子用控件摆放上去就可以了:【1.18自定义窗体】1、看看下面吧:2、看看例子吧:3、用“格式”中的对齐命令可以方便的对齐控件的位置:【1.19使用标准控件】1、看看下面吧:看看例子吧:2、看看例子吧:3、看看例子吧:4、看看例子吧:【1.20使用Activex控件】1、看看下面吧:2、要完成更加强大的功能就需要用到Activex控件了,普通的控件就不能够完成了。3、看看我们用imagelist控件来改进信号灯的那个例子。imagelist控件是用来储存图片的,而image控件如果需要图片的时候就可以从imagelist里面直接来调用的:看看例子吧:效果和以前我们用3张独立图片的一样,但是做起来要比以前的方便些。4、看看下面treeview的例子吧。它用到的图标可以也由imagelist提供:5、看看listview的例子吧。它所用到的图标也可以由imagelist提供:【1.21使用内置对话框】1、看看下面吧:注意这个例子用的是application的inputbox方法,而不是直接用的inputbox这个函数。2、看看例子吧:3、如果是如下图的代码就可以在打开的对话框里面进行多项选择了:4、看看例子吧:5、看看下面吧:看看例子吧:看看例子吧:看看例子吧:【1.22使用VBA控制图表】1、看看下面吧:图表分为嵌入到工作表中的,还有就是自己独立就是一个工作表的,在使用时需要注意它们的目录级别是不同的,如上图所示。2、看看例子吧:3、再看看吧:4、使用这种代码添加图标的方法和使用工具栏添加图标方法的作用是相同的:【1.23Excel加载宏】1、看看下面吧:看看载入加载宏的例子吧:这样在工具栏就出现了一个数据分析和规划求解的栏目了:而卸载加载项就是把如下图的窗口的选项给取消掉选择就可以了:2、看看下面的例子吧:首先在一个工作表中输入如下图所示的中英文单词:看看效果吧:3、上面这种通过对话框的方式,或者是通过往单元格里面插入函数的方式使用起来都不是很方便,所以我们要通过加载宏的方式。上图中之所以要有删除按钮的操作,是因为如果不删除的话其它的工作薄也会有这个加载宏的按钮了:注意要把这个文件保存为如下图所示的格式才能让加载宏生效:4、我们在新建一个excel文件的时候是没有我们新建的加载宏的:然后我们添加上这个加载宏:加载宏默认是存在如下图所示的目录中的:这回工具栏中就有了这个加载宏了:5、利用这个加载宏的功能我们就可以
本文标题:ExcelVBA入门到精通
链接地址:https://www.777doc.com/doc-4362196 .html