
Office 2010 中 VBA 编程的强大功能是:几乎所有可以使用鼠标、键盘或对话框执行的操作都可以使用 VBA 来执行。另外,如果可以使用 VBA 执行一次操作,则可以轻松执行一百次这样的操作。事实上,自动执行重复任务是 Office 中 VBA 的最常见用法之一。
使用Range属性
VBA中可以使用Range属性返回单元格或单元格区域,如下面的代码所示。
Sub 选择1()
Sheet1.Range("A1:D9, D1:D9").Select
End Sub
代码解析:第二行单元格A1:D9和单元格D1:D9同时选中。
“选择1”过程使用Select方法选中A1:A9,D1:D9单元格区域。
If Then 判断语句(单行结构)
Sub 按钮1_单击()
If Range("a1").Value >= 60 Then
Range("b1") = "及格"
End If
End Sub
代码解析:第2行代码判断,如果A1单元格的值大于等于60,那么;第3行代码在单元格B1输入“及格”。
For Next语句
Sub macro1()
Dim I As Byte, C As Integer
For I = 1 To 100
C = C + I
Next I
MsgBox C
End Sub
代码解析:
第2行定义变量I为字节型,C为整型;第3行代码到第5行用了一个循环语句For Next ,给I赋值,赋值范围从1到100;第4行代码累加;第6行代码用输出函数MsgBox显示最后累加的C。
Select Case 语句
Sub aa()
Dim I As Integer
For I = 2 To 7
m = Sheet1.Range("a" & I)
Select Case m
Case Is >= 80
Sheet1.Range("b" & I) = "优秀"
Case Is >= 70
Sheet1.Range("b" & I) = "良好"
Case Is >= 60
Sheet1.Range("b" & I) = "及格"
Case Else
Sheet1.Range("b" & I) = "不及格"
End Select
Next I
End Sub
代码解析:
第2行定义变量I为整型;从第3行到15行用了一个循环语句For Next,给I赋值从2到7;第4行代码把工作表1从A2开始到A7的值赋给m;从第5行代码到14行代码用了Select Case End Select语句。
Sheet3.Activate
For I = 2 To 12
If Range("b" & I) = "数学部" Then
Select Case Range("e" & I)
Case "教授"
Range("D15") = Range("D15") + Range("G" & I)
Case "助教"
Range("D16") = Range("D16") + Range("G" & I)
Case "讲师"
Range("D17") = Range("D17") + Range("G" & I)
Case "副教授"
Range("D18") = Range("D18") + Range("G" & I)
End Select
End If
Next I
For I = 2 To 5
If Range("a" & I) = "技能竞赛" Then
Select Case Range("c" & I)
Case "张三"
Range("d12") = Range("d12") + 1
Case "王五"
Range("D13") = Range("D13") + 1
End Select
End If
Next I
For I = 2 To 5
If Range("a" & I) = "技能竞赛" Then
Select Case Range("d" & I)
Case "张三"
Range("d12") = Range("d12") + 1
Case "王五"
Range("D13") = Range("D13") + 1
End Select
End If
Next I
For I = 2 To 5
If Range("a" & I) = "技能竞赛" Then
Select Case Range("e" & I)
Case "张三"
Range("d12") = Range("d12") + 1
Case "王五"
Range("D13") = Range("D13") + 1
End Select
End If
Next I
