百度首页 | 百度空间
 
查看文章
 
EXCEL VBA应用教程----第10讲 VBA程序设计(四)
2007-08-06 07:16

2.对象处理常用语句

要使用VBA有效地处理Excel对象模型,则需要经常使用With…End With语句和For Each…Next语句,它们可以简化对对象和集合的处理。

(1)With … End With语句

With … End With语句可以对某个对象执行一系列的操作,而不必重复指出该对象的名称。其语法为:

       With <对象>

           [语句代码]

       End With

其中:<对象>表示With语句要执行操作的具体对象,[语句代码]为对某对象执行操作的一条或多条语句,前面以点运算符开头。

考虑下面的程序,该程序对当前工作簿中的工作表Sheet1上的单元格区域A1:F20进行操作,设置该区域的字体样式、字体大小、下划线、以及字体颜色等属性。

Sub 格式A()

         Worksheets(“Sheet1”).Range("A1:F20").Font.Name = "Arial"

         Worksheets(“Sheet1”).Range("A1:F20").Font.FontStyle = "Bold Italic"

         Worksheets(“Sheet1”).Range("A1:F20").Font.Size = 10

         Worksheets(“Sheet1”).Range("A1:F20").Font.Underline = xlUnderlineStyleSingle

         Worksheets(“Sheet1”).Range("A1:F F20").Font.ColorIndex = 3

End Sub

该过程可以使用With…End With语句来重新编写,如下面的程序执行与上面程序完全一样的操作:

Sub 格式B()

         With Worksheets(“Sheet1”).Range("A1: F20").Font

           .Name = "Arial"

           .FontStyle = "Bold Italic"

           .Size = 10

           .Underline = xlUnderlineStyleSingle

           .ColorIndex = 3

         End With

End Sub

使用With语句,不仅能避免您反复输入相同的代码,使您的程序代码更简洁,也能使程序运行得更快。

(2)For Each … Next 语句

For Each…Next语句遍历集合或数组中的每个元素,重复执行语句中的代码。其语法为:

For Each <元素> In <集合/数组>

       [语句代码]

       [Exit For]

       [语句代码]

Next [元素]

其中,<元素>为必需的参数,表示用来遍历集合或数组中所有元素的变量;<集合/数组>表示对象的集合或数组的名称;[语句代码]为可选参数,为对集合或数组中每一元素执行操作的代码;[Exit For]语句为中途退出循环;Next后的[元素]可省略。

当集合或数组中至少存在一个元素时,应会进入For Each…Next语句。首先针对集合或数组中的第一个元素执行For Each…Next语句中的代码,然后针对第二个元素执行语句代码,当集合或数组中的所有元素都执行完毕后,便会退出循环。如果在循环中的语句代码放置Exit For语句,执行到此语句时,便会退出循环;Exit For语句通常放在条件判断语句中。

可以将一个For Each…Next语句放在另一个For Each…Next语句中组成嵌套的循环。在每个For Each…Next语句中的<元素>变量应该不同。

下面的程序显示当前工作簿中所有工作表的名字,用MsgBox函数显示。如果当前工作簿中有3个工作表,则循环3次,相应地3次调用MsgBox函数。

Sub 工作表名称()

         Dim ws As Worksheet

         For Each ws In ActiveWorkbook.Worksheets

            MsgBox ws.Name

         Next ws

End Sub

下面的程序需要选在工作表中选择某单元格区域后,再运行代码。程序将在所选单元格区域单元格中循环,并将每个单元格的值使用VBA的UCase函数转换成大写字母。

Sub 转换为大写字母()

         Dim Cell As Range

         For Each Cell In Selection

           Cell.Value = UCase(Cell.Value)

         Next Cell

End Sub

3、控制程序流程语句

(1) GoTo语句

该语句将执行的程序转到指定的标签所在的语句指令,但不能转移到过程之外的指令。例如,在进行错误捕捉时,发生错误后,程序转移至标签所在处执行。

(2) Select Case语句

当需要作出三种或三种以上的条件判断时,最后使用Select Case语句。其基本语法为:

Select Case <测试表达式>

     [Case 条件表达式1]

        [指令]

     [Case 条件表达式2]

        [指令]

     ……

     [Case Else]

        [指令]

End Select

当某个条件表达式与测试表达式相匹配时,则执行其后的指令,否则执行Else(如果有的话)后的指令,然后结束Select Case块的执行。

(3)错误转移语句

忽略所有的错误:

ON ERROR RESUME NEXT

遇错跳转:

on error goto err_handle

'中间的其他代码

err_handle: ' 标签

'跳转后的代码

       4.函数的使用

     Function 过程是一系列由 Function 和 End Function 语句所包含起来的语句。Function 过程和 Sub 过程很类似,但函数可以返回一个值。Function 过程可经由调用者过程通过传递参数,例如常数、变量、或是表达式等来调用它。如果一个 Function 过程没有参数,它的 Function 语句必须包含一个空的圆括号。函数会在过程的一个或多个语句中指定一个值给函数名称来返回值。

从其他过程调用一个 Sub 过程时,必须键入过程名称以及任何需要的参数值。而 Call 语句并不需要,不过若使用它,则任何参数必须以括号括起来。



类别:excel在会计中的应用 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu