欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Excel VBA 基础语法

程序员文章站 2024-01-27 17:06:22
...
  1.  
    Is 比较两个对象的引用变量|| 对象1 Is 对象2 || 当对象1和对象2引用相同的对象时返回True,否则返回False
  2.  
    Like 比较两个字符串是否匹配 || 字符串1 Like 字符串2 || 当字符串1与字符串2匹配时返回True,否则返回False
  3.  
     
  4.  
    Range("A1") >= 500
  5.  
     
  6.  
    Range("B2") Like "陈*"
  7.  
     
  8.  
    "*"是通配符,代替任意多个字符
  9.  
    "?" 代替任意的单个字符
  10.  
    "#" 代替任意单个数字
  11.  
    [A-Z] 代替位于charlist中的任意一个字符
  12.  
    [!H-J] 代替不在charlist中的任意一个字符
  13.  
     
  14.  
    3.8.4 逻辑运算符
  15.  
    And 逻辑"与"
  16.  
    Or 逻辑"或"
  17.  
    Not 逻辑"非"
  18.  
    Xor 逻辑"异或"
  19.  
    Eqv 逻辑"等价"
  20.  
    Imp 逻辑"蕴含"
  21.  
     
  22.  
    3.10.3 使用Select Case语句解决“多选一”的问题
  23.  
    Sub Test()
  24.  
        Select Case Range("B2").Value
  25.  
            Case Is >= 90
  26.  
                Range("C2").Value = "优秀"
  27.  
            Case Is >= 80
  28.  
                Range("C2").Value = "良好"
  29.  
            Case Is >= 60
  30.  
                Range("C2").Value = "及格"
  31.  
            Case Else
  32.  
                Range("C2").Value = "不及格"
  33.  
        End Select
  34.  
    End Sub
  35.  
     
  36.  
    3.10.4For...Next语句循环执行同一段代码
  37.  
    Sub ShtAdd()
  38.  
        '在活动工作表前插入一张新工作表,新插入的工作表即为活动工作表
  39.  
        Worksheets.Add
  40.  
    End Sub
  41.  
     
  42.  
    Sub ShtAdd()
  43.  
        '定义一个Byte类型的变量,名称为i
  44.  
        Dim i As Byte
  45.  
        For i = 1 To 5 Step 1
  46.  
            '在活动工作表前插入一张新工作表
  47.  
            Worksheets.Add
  48.  
        Next i
  49.  
    End Sub
  50.  
     
  51.  
    使用Exit For终止For循环
  52.  
     
  53.  
    Sub Test()
  54.  
        Dim i As Byte                  '定义一个Byte类型的变量,名称为i
  55.  
        For i = 2 To 11 Step 1                         '用For语句定义循环次数
  56.  
            Select Case Range("B" & i).Value      'B列第i行的成绩是要评定等次的成绩
  57.  
                Case Is >= 90
  58.  
                    Range("C" & i).Value = "优秀"        '成绩达到90时要执行的代码
  59.  
                Case Is >= 80
  60.  
                    Range("C" & i).Value = "良好"        '成绩达到80时要执行的代码
  61.  
                Case Is >= 60
  62.  
                    Range("C" & i).Value = "及格"        '成绩达到60时要执行的代码
  63.  
                Case Else
  64.  
                    Range("C" & i).Value = "不及格"      '成绩是其他情况时要执行的代码
  65.  
            End Select             'Select语句到此结束
  66.  
        Next i                      'For语句到此结束
  67.  
    End Sub
  68.  
     
  69.  
    3.10.5For Each...Next语句循环处理集合或数组中的成员
  70.  
    Sub ShtName()
  71.  
        Dim sht As Worksheet, i As Integer    '定义两个变量,其中sht是Worksheet(工作表)类型
  72.  
        i = 1                                 '第1次写入工作表名称的是A1单元格,所以变量值定义为1
  73.  
        For Each sht In Worksheets            '循环语句开始
  74.  
            Range("A" & i) = sht.Name         '将工作表名称写入A列第i行的单元格
  75.  
            i = i + 1                         '让变量i的值增加1,以便下次能将工作表名写入其他单元格中
  76.  
        Next sht '循环语句结束
  77.  
    End Sub
  78.  
     
  79.  
    问题:将1-100写入A1-A100中
  80.  
    Sub RN()
  81.  
        Dim c As Range, i As Integer
  82.  
        i = 1
  83.  
        For Each c In RANGE("A1:A100")
  84.  
            c.Value = i
  85.  
            i = i + 1
  86.  
        Next c
  87.  
    End Sub
  88.  
     
  89.  
    3.10.6Do语句按条件控制循环
  90.  
    Sub ShtAdd_01()
  91.  
        Dim i As Byte           '定义一个Byte类型的变量,名称为i
  92.  
        i = 1                   '给变量i赋值
  93.  
        Do While i <= 5         '当变量i小于或等于5时执行循环体
  94.  
            Worksheets.Add      '在活动工作表前插入一张新工作表
  95.  
            i = i + 1           '每执行一次循环体,变量i的值就增加1
  96.  
        Loop                    'Do语句结束的标志
  97.  
    End Sub
  98.  
     
  99.  
    Sub ShtAdd_02()
  100.  
        Dim i As Byte                '定义一个Byte类型的变量,名称为i
  101.  
        i = 1                        '给变量i赋值
  102.  
        Do                           'Do语句开始
  103.  
            If i > 5 Then Exit Do    '如果变量i的值大于5,那么终止循环
  104.  
            Worksheets.Add           '在活动工作表前插入一张新工作表
  105.  
            i = i + 1                '每执行一次循环体,变量i的值就增加1
  106.  
        Loop                         'Do语句结束的标志
  107.  
    End Sub
  108.  
     
  109.  
    Sub ShtAdd_03()
  110.  
        Dim i As Byte           '定义一个Byte类型的变量,名称为i
  111.  
        i = 1                   '给变量i赋值
  112.  
        Do                      'Do语句开始
  113.  
            Worksheets.Add      '在活动工作表前插入一张新工作表
  114.  
            i = i + 1           '每执行一次循环体,变量i的值就增加1
  115.  
        Loop While i <= 5       '如果变量i小于或等于5,那返回Do语句开始处再执行一次循环体
  116.  
    End Sub
  117.  
     
  118.  
    3.10.7 使用GoTo语句让程序转到另一条语句去执行
  119.  
    Sub Sum_Test()
  120.  
        Dim mysum As Long, i As Integer         '定义两个变量
  121.  
        i = 1 '变量i的初始值为1
  122.  
    x:  mysum = mysum + i                       '将变量mysum的值与变量i的值相加,并将结果重新赋给变量mysum
  123.  
        i = i + 1                               '变量i的值在原值的基础上增加1
  124.  
        If i <= 100 Then GoTo x                 '如果i小于或等于100,跳转到x标签处
  125.  
        MsgBox "1到100的自然数和是:" & mysum   '用对话框显示变量mysum的值
  126.  
    End Sub
  127.  
     
  128.  
    3.10.8 With语句简写代码离不开它
  129.  
    Sub FontSet_02()
  130.  
        With Worksheets("Sheet1").Range("A1").Font    '开始With语句,定义要设置的对象
  131.  
            .Name = "仿宋"                            '设置字体仿宁
  132.  
            .Size = 12                                '设置字号为12号
  133.  
            .Bold = True                              '设置字体为加粗字体
  134.  
            .ColorIndex = 3                           '设置字体颜色为红色
  135.  
        End With                                      'With语句到这里结束
  136.  
    End Sub
  137.  
     
  138.  
    3.11.2 Sub过程的基本结构
  139.  
    Sub hong()
  140.  
        RANGE("A1:A8").Select
  141.  
        SELECTION.COPY
  142.  
        RANGE("C1").Select
  143.  
        ACTIVESHEET.PASTE
  144.  
    END Sub
相关标签: excel vba