VBA在Excel中的应用一例
2017-04-10杜玉红
摘 要:VBA是建立在微软Office中的一种应用程序开发工具,为使用者提供了一种可编程的文字、表格处理手段,避免了因人工编辑出现错误和内容过多带来大量重复劳动,可以提高办公效率。在Excel中,自身已经带有很多实用的公式,除满足日常计算应用外,还可以用VBA提供更高级的处理办法。
关键词:VBA;Excel;程序开发
DOI:10.16640/j.cnki.37-1222/t.2017.07.124
如果深入了解过Excel,会发现其原有的公式非常强大,处理重复工作时还可以采用制作宏来解决,如果使用过宏命令,就相当于用到了一次简单的VBA代码。事实上,VBA编辑器在菜单中也是包含在“宏”的分类下的。
1 For-next语句的示例
本文中,我们就以一个简单的“计算1到1000中各类数字和”的例子,来探索一下其应用。
在此,我们用到的是For-next语句。即从开始执行语句后,反复执行For和Next之间的代码,直到执行完毕或遇到Exit for后终止,标准句式如下:
For 循环变量=初始 to 终值 step 步长
循环语句1
[exit for]
循环语句2
Next 循环变量
其中,步长、exit for和next后的变量均可省略,步长省略后的默认值为1,exit for是强制退出循环命令,执行后将直接跳到next后面。
在此,我们分别给出计算1-10000中整数和、偶数和以及奇数和这几个代码。
整数和:
Sub naturesum()
Dim i&,j&
For i=1 to 10000
j=j+i
Next
MsgBox “1到10000的自然数和为:” &j
End Sub
偶数和:
Sub 求1到10000之间偶数和()
Dim i&, j&
For i = 0 To 10000 Step 2
j = j+ i
Next
MsgBox "1到10000之间偶数和为" & j
End Sub
奇数和
Sub 求1到10000之间奇数和()
Dim i&, j&
For i = 1 To 10000 Step 2
j = j + i
Next
MsgBox "1到10000之间奇数和为" & j
End Sub
可以看到,和其他语言如C语言中一样,变量的定义、循环语句的使用和中断是基本类似的。可以用到的是多行选条件统计,做成VBA按钮后省略常规方式的选中、筛选、使用vlookup或类似语句进行条件判断再复制结果的步骤。
2 VBA中的对象特殊性
其他还有for-each,do-while等语句,使用原理和其他编程语言一致,不再一一列举,但要注意的是,VBA的对象类型是为了控制Excel而存在,因此和其他语言是有区别的。Excel程序(Application对象)、工作薄(Workbook对象)、工作表(Worksheet对象)、单元格(Range对象)还是操作图表(Chart对象)、窗体(Userfrom对象)等等,都是在操作对象。每个对象都是其他对象的一部分,也可以由其他对象组成。最顶端的对象为Application即Excel程序本身,加上worksheet即标签页,都可以通过VBA直接操作,对于某个单元格更不在话下,VBA的工作原理至此应该可以十分透彻的理解了。
其他VBA独有的代码命令如针对单元格的选中、复制和粘贴等,如下列复制粘贴代码:
Sub Macro1()
Range("A1").Copy Range("B1")
End Sub
其中“Range”是规定操作区域的命令,也可以加上“select”即Range("A1").Select,即选中A1单元格,但与鼠标操作不同,VBA操作可以在不选取的情况下进行。如果跨工作表则增加Workbooks和Steets标签,如 Workbooks("book1").Sheets(1).[a1:a10]即文件book1中sheet1表格的a1到a10单元格。
VBA的应用十分灵活多变,综合了各种程序语言的特征,能极大地提高Excel的功能性和实用性,再熟悉环境后加强运用,会获得意想不到的便利,甚至远大于某些低廉的专用办公系统。
参考文献:
[1]贾志先.基于逻辑推理的计算机试题评卷算法研究[J].智能计算机与应用,2014(04).
[2]贾志先.计算机文化基础考试系统的开发与应用[J].計算机应用,2001(07)中国图书全文数据库共3条.
[1]马维峰.ExcelVBA应用开发从基础到实践[M].电子工业出版社,2006.
[2]王鸿儒.ExcelVBA程序设计[M].中国铁道出版社,2005.
[3](美)[B.扎拉琴]BeckZaratian.MicrosoftVisualJ++6.0programmersguide程序员指南[M].北京希望电子出版社,1999.
作者简介:杜玉红(1979-),女,河南安阳人,本科,讲师,主要研究方向:计算机应用。