Excel VBA 基础语法

3.8.2 比较运算符
Is 比较两个对象的引用变量|| 对象1 Is 对象2 || 当对象1和对象2引用相同的对象时返回True,否则返回False
Like 比较两个字符串是否匹配 || 字符串1 Like 字符串2 || 当字符串1与字符串2匹配时返回True,否则返回False

Range("A1") >= 500

Range("B2") Like "陈*"

"*"是通配符,代替任意多个字符
"?" 代替任意的单个字符
"#" 代替任意单个数字
[A-Z] 代替位于charlist中的任意一个字符
[!H-J] 代替不在charlist中的任意一个字符

3.8.4 逻辑运算符
And 逻辑"与"
Or 逻辑"或"
Not 逻辑"非"
Xor 逻辑"异或"
Eqv 逻辑"等价"
Imp 逻辑"蕴含"

3.10.3 使用Select Case语句解决“多选一”的问题
Sub Test()
    Select Case Range("B2").Value
        Case Is >= 90
            Range("C2").Value = "优秀"
        Case Is >= 80
            Range("C2").Value = "良好"
        Case Is >= 60
            Range("C2").Value = "及格"
        Case Else
            Range("C2").Value = "不及格"
    End Select
End Sub

3.10.4 用For...Next语句循环执行同一段代码
Sub ShtAdd()
    '在活动工作表前插入一张新工作表,新插入的工作表即为活动工作表
    Worksheets.Add
End Sub

Sub ShtAdd()
    '定义一个Byte类型的变量,名称为i
    Dim i As Byte
    For i = 1 To 5 Step 1
        '在活动工作表前插入一张新工作表
        Worksheets.Add
    Next i
End Sub

使用Exit For终止For循环

Sub Test()
    Dim i As Byte                  '定义一个Byte类型的变量,名称为i
    For i = 2 To 11 Step 1                         '用For语句定义循环次数
        Select Case Range("B" & i).Value      'B列第i行的成绩是要评定等次的成绩
            Case Is >= 90
                Range("C" & i).Value = "优秀"        '成绩达到90时要执行的代码
            Case Is >= 80
                Range("C" & i).Value = "良好"        '成绩达到80时要执行的代码
            Case Is >= 60
                Range("C" & i).Value = "及格"        '成绩达到60时要执行的代码
            Case Else
                Range("C" & i).Value = "不及格"      '成绩是其他情况时要执行的代码
        End Select             'Select语句到此结束
    Next i                      'For语句到此结束
End Sub

3.10.5 用For Each...Next语句循环处理集合或数组中的成员
Sub ShtName()
    Dim sht As Worksheet, i As Integer    '定义两个变量,其中sht是Worksheet(工作表)类型
    i = 1                                 '第1次写入工作表名称的是A1单元格,所以变量值定义为1
    For Each sht In Worksheets            '循环语句开始
        Range("A" & i) = sht.Name         '将工作表名称写入A列第i行的单元格
        i = i + 1                         '让变量i的值增加1,以便下次能将工作表名写入其他单元格中
    Next sht                              '循环语句结束
End Sub

问题:将1-100写入A1-A100中
Sub RN()
    Dim c As Range, i As Integer
    i = 1
    For Each c In RANGE("A1:A100")
        c.Value = i
        i = i + 1
    Next c
End Sub

3.10.6 用Do语句按条件控制循环
Sub ShtAdd_01()
    Dim i As Byte           '定义一个Byte类型的变量,名称为i
    i = 1                   '给变量i赋值
    Do While i <= 5         '当变量i小于或等于5时执行循环体
        Worksheets.Add      '在活动工作表前插入一张新工作表
        i = i + 1           '每执行一次循环体,变量i的值就增加1
    Loop                    'Do语句结束的标志
End Sub

Sub ShtAdd_02()
    Dim i As Byte                '定义一个Byte类型的变量,名称为i
    i = 1                        '给变量i赋值
    Do                           'Do语句开始
        If i > 5 Then Exit Do    '如果变量i的值大于5,那么终止循环
        Worksheets.Add           '在活动工作表前插入一张新工作表
        i = i + 1                '每执行一次循环体,变量i的值就增加1
    Loop                         'Do语句结束的标志
End Sub

Sub ShtAdd_03()
    Dim i As Byte           '定义一个Byte类型的变量,名称为i
    i = 1                   '给变量i赋值
    Do                      'Do语句开始
        Worksheets.Add      '在活动工作表前插入一张新工作表
        i = i + 1           '每执行一次循环体,变量i的值就增加1
    Loop While i <= 5       '如果变量i小于或等于5,那返回Do语句开始处再执行一次循环体
End Sub

3.10.7 使用GoTo语句让程序转到另一条语句去执行
Sub Sum_Test()
    Dim mysum As Long, i As Integer         '定义两个变量
    i = 1                                   '变量i的初始值为1
x:  mysum = mysum + i                       '将变量mysum的值与变量i的值相加,并将结果重新赋给变量mysum
    i = i + 1                               '变量i的值在原值的基础上增加1
    If i <= 100 Then GoTo x                 '如果i小于或等于100,跳转到x标签处
    MsgBox "1到100的自然数和是:" & mysum   '用对话框显示变量mysum的值
End Sub

3.10.8 With语句简写代码离不开它
Sub FontSet_02()
    With Worksheets("Sheet1").Range("A1").Font    '开始With语句,定义要设置的对象
        .Name = "仿宋"                            '设置字体仿宁
        .Size = 12                                '设置字号为12号
        .Bold = True                              '设置字体为加粗字体
        .ColorIndex = 3                           '设置字体颜色为红色
    End With                                      'With语句到这里结束
End Sub

3.11.2 Sub过程的基本结构
Sub hong()
    RANGE("A1:A8").Select
    SELECTION.COPY
    RANGE("C1").Select
    ACTIVESHEET.PASTE
END Sub

猜你喜欢

转载自blog.csdn.net/ChristopherChen/article/details/53345695