【例5.1】使用If Then条件语句判断数值的大小
Sub Sample1()
Dim num1 As Integer, num2 As Integer
num1 = 5
num2 = 10
If num1 < 8 Then
Debug.Print "num1小于8"
End If
If num2 < 8 Then
Debug.Print "num2小于8"
End If
End Sub
【例5.2】使用If …Then Else条件语句判断学生的成绩是否及格,操作步骤如下。
Sub Sample2()
Dim stuScore As Integer
stuScore = 70
If stuScore < 60 Then
Debug.Print "成绩不及格"
Else
Debug.Print "成绩及格"
End If
End Sub
【例5.3】使用If多重条件判断语句,根据学生的成绩发放奖学金,操作步骤如下。
Sub Sampl3()
Dim stuScore As Integer
stuScore = 90
If stuScore > 95 Then
Debug.Print "该学生获得一等奖学金"
ElseIf stuScore > 85 Then
Debug.Print "该学生获得二等奖学金"
Else
Debug.Print "该学生未获得奖学金"
End If
End Sub
【例5.4】使用Select Case分支判断语句,操作步骤如下。
Sub Sampl4()
For Row = 1 To 5
Select Case Range("A" & Row).Value
Case "一级作者"
Range("B" & Row).Value = 3000
Case "二级作者"
Range("B" & Row).Value = 3500
Case "三级作者"
Range("B" & Row).Value = 4000
Case "四级作者"
Range("B" & Row).Value = 4500
Case "五级作者"
Range("B" & Row).Value = 5000
End Select
Next
End Sub
【例5.5】根据购买产品的数量,决定出售的价格,操作步骤如下。
打开Excel工作簿,在表单1中A列下的表格中依次输入下面一些值。
500,600,1000,300,5000,12000,100
Sub Sample5()
Dim price AS Single,quantity AS Integer
price = 100.0
For Row = 1 To 7
Quantity = Val(Range("A" & Row).Value)
Select Case Quantity
Case Is < 500
Range("B" & Row).Value = price
Case Is >= 500
Range("B" & Row).Value = price * 0.95
Case Is >= 500
Range("B" & Row).Value = price * 0.9
Case Is >= 1000
Range("B" & Row).Value = price * 0.8
Case Is >= 5000
Range("B" & Row).Value = price * 0.8
Case Is >= 10000
Range("B" & Row).Value = price * 0.8
End Select
Next
End Sub
【例5.6】使用For循环将A列的偶数单元格背景设置交叉颜色,操作过程如下。
Sub Sample6()
For Row = 1 To 50
If Row Mod 2 = 0 Then
Range("A" & Row).Interior.ColorIndex = 3
Else
Range("A" & Row).Interior.ColorIndex = 5
End If
Next Row
End Sub
【例5.7】打印For循环中的循环变量值,指定步长为-2,操作过程如下:
Sub Sample7()
For Count = 10 To -2 Step -2
Debug.Print Count
Next Count
End Sub
【例5.8】:提示Loop循环次数,操作过程如下。
Sub Sample8()
counter = 0
myNum = 20
Do While myNum > 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "该循环执行了 " & counter & " 次!"
End Sub
【例5.9】编写一个用户登录控制代码,如果用户输入的密码次数超过3次,禁止用户登录,操作过程如下:
Sub Sample9()
Dim pwd As String
Dim count As Integer
Do
pwd = InputBox("请输入密码")
If pwd = "mypwd" Then
Exit Do
Else
MsgBox ("请重新输入密码")
End If
count = count + 1
Loop While count < 3
If count >= 3 Then
MsgBox ("超过登录次数,登录受限!")
Else
MsgBox ("欢迎登录")
End If
End Sub
【例5.10】While循环变量用法,操作过程。
Sub Sample10()
Dim Counter
Counter = 0 ' 设置变量初值。
While Counter < 20 ' 测试计数器的值。
Counter = Counter + 1 ' 将计数器的值加一。
Wend ' 当 Counter > 19 时则循环终止。
Debug.Print Counter ' 在“立即”窗口中显示数字 20
End Sub
【例5.11】遍历数组对象,操作过程如下。
Sub Sample11()
Dim MyArray(10) As Integer, i As Variant
For idx = 0 To 10
MyArray(idx) = idx
Next idx
For Each i In MyArray
Debug.Print i
Next i
End Sub
【例5.12】在指定A1到C15区域依次在每个表格中插入一个数值,操作过程如下:
Sub Sample12()
Worksheets("Sheet1").Activate
Dim i As Integer
i = 1
For Each obj In Range("A1:C15")
obj.Value = i
i = i + 1
Next obj
End Sub
【例5.13】设置跳转标签,使用GoTo 语句在一个过程内的不同程序段间作流程控制,不同程序段用不同的“程序标签”来区隔,操作过程如下。
Sub Sample13()
Dim Number, MyString
Number = Int(Rnd * 10) Mod 2 ' 设置变量初始值,值为1或者0
' 判断 Number 的值以决定要完成那一个程序区段(以“程序标签”来表式)。
If Number = 1 Then GoTo Line1 Else GoTo Line2
Line1:
MyString = "Number equals 1"
GoTo LastLine ' 完成最后一行。
Line2:
MyString = "Number equals 2"
LastLine:
Debug.Print MyString ' 将“"Number equals 1"”显示在“立即”窗口。
End Sub
【例5.14】使用 Exit 语句退出 For...Next 循环、Do...Loop 循环及子过程,操作过程如下:
Sub Sample14()
Dim I, MyNum
Do ' 建立无穷循环。
For I = 1 To 1000 ' 循环 1000 次。
MyNum = Int(Rnd * 1000) ' 生成一随机数码。
Select Case MyNum ' 检查随机数码。
Case 7:
Debug.Print "Exit For"
Exit For ' 如果是 7,退出 For...Next 循环。
Case 29:
Debug.Print "Exit Do"
Exit Do ' 如果是 29,退出 Do...Loop 循环。
Case 54:
Debug.Print "Exit Sub"
Exit Sub ' 如果是 54,退出子过程。
End Select
Next I
Loop
Debug.Print "退出过程!"
End Sub
- 1
- 2
- 3
- 4
- 5
前往页