返回首页
当前位置: 主页 > Excel教程 > Excel2007教程 >

Excel2007中VBA的工作原理

时间:2012-09-06 21:27来源:Office教程学习网 www.office68.com编辑:麦田守望者

到目前为止,VBA是Excel中最复杂的功能,你很容易被它难倒。在这里先简要介绍一下VBA的工作原理:
 ●通过在VBA模块表中编写(或录制)代码用VBA执行操作,然后以多种方法中的任意一种来执行宏。VBA模块保存在Excel工作簿中,一个工作簿可以存储任意数量的VBA模块。要查看或编辑VBA 模块,必须激活VB编辑器窗口(按Alt+F11键可以在Excel和VB编辑器窗口间切换) 。

 ●VBA模块由过程组成。一段过程本上是执行某些操作的计算机代码。下面是一个叫做ShowSum(计算1+1的和并显示结果)的简单子过程的例子:

Sub ShowSum()
Sum=1+1
Msgbox "The answer is "& Sum
End Sub

 ●VBA模块还可以保存函数过程。函盘过程能执行计算并返回一个值。函数可以从另一个VBA过程中调用,甚至可以用于一个工作表公式。下面是一个名为AddTwo(这是求两个值的和,这两个值作为参数提供)的函数的例子。

Function AddTwo(arg1,arg2)
AddTwo = arg1+arg2
End Function

 ●VBA操作对象。Excel提供超过100类可供操纵的对象。例如,对象包括工作簿、工作表、工作表中的区域、图表和矩形等。

  ●对象分层排列,并可作为其他对象的容器。例如,Excel本身就是一个叫做Application的对象,它包含其他一些对象,如workbook对象。workbook对象也可包含其他对象,如worksheet对象和Chart对象。worksheet对象可包含Range对象, Pivot Table对象等。这些对象的布局被称为对象模型。

  ●类似于构成集合的对象。例如,worksheet集合由特定工作簿中的所有工作表组成。ChartObjects集合由工作表中的所有图表对象组成。Collections是其本身的对象。

 ●在VBA代码中,可以通过指定对象在其对象层中的位置来引用这个对象,并使用句号作为分隔符。
  例如,可以将一个名为Book1.xlsx的工作簿引用为:
  Application.Workbooks("Book1.xlsx")
 该表达式在Workbooks集合中引用了Book1.xls 工作簿。Workbooks集合包含在Application对象(即Excel中。将此方法扩展至其他层,可在Book1中引用Sheet1,方法如下所示:
  Application.Workbooks("Book1.xlsx").Worksheets("Sheet1")
 还可深入一层,引用一个特定的单元格,方法如下所示:
  Application.Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1") 

  ●如果忽略特殊引用,Excel会使用活动对象。如果Book1.xlsx是活动工作簿,前面的引用可简化为:
 Worksheets("Sheet1").Range("A1")
 如果Sheet1是活动工作表,则可进一步把引用简化为:
  Range("A1")

  ●对象有属性。席位被认为是对象的设置。例如,Range对象有诸如Value和Address之类的属性,Chart对象有HasTitle和Type属性。可以使用VBA来决定对象的属性并改变它们。

  ●通过以句号作为分隔符结合对象和属性来引用属性。例如,可引用Sheet1上单元格A1中的数值,如下所示:
  Worksheets("Sheet1").Range("A1").Value

  ●可以给变量赋值。要把Sheet1上单元格A1中的数值赋给叫做Interest的变量,使用以下VBA语句:
  Interest=Worksheets("Sheet1").Range("A1").Value

 ●对象还有方法。方法是对象所进行的操作。例如,Range对象的其中一个方法是
ClearContents(清除内容)。该方法清除区域中的内容。

  ●通过利用句号结合方法和对象来指定方法。例如,要清除单元格A1的内容,使用下列语句:
  Worksheets("Sheet1").Range("A1:C12").ClearContents

  ●VBA也包括现代编程语言具有的全部结构,包含变量、数组、循环等。

------分隔线----------------------------
标签(Tag):excel excel2007 excel2010 excel2003 excel技巧 excel教程 excel实例教程 excel2010技巧
------分隔线----------------------------
推荐内容
猜你感兴趣