【办公软件】Excel VBA

一、常用语法:

  • 循环:

    1.For    ...    Next

      例:

        For i = 20 To 1 Step -1 

            Cells(i, 2) = Cell(i, 1) * 6.5

        Next i

    2.Do While    ...    Loop

      例:

        i = 2

        Do While Trim(Cells(i, 1)) <> ""

            Cells(i, 2) = Cell(i, 1) * 6.5

        i = i + 1

        Loop

    3.For Each ... In    ....    Next

      例:

        For Each w In Worksheets

            w.Cells(3, 2) = "已阅"

        Next w

  • 判断:

    1.If ... Then ... ElseIf ... Else ... End If

        And, Or, Not

      例:

        If age > 30 And marriage = "SINGLE" Or age <= 30 And girlfriend = 0 Then

          MsgBox "你大概是程序员吧"

        End If

  • 字符串函数:

    1. &         UCase()      LCase()      Trim()        Replace()     Len()      Instr()       Left()        Right()      Mid()

    含义: 拼接       大写            小写         去空格        替换            长度       包含        左数位置  右数位置  中间数位置

      例:Replace(s,a,b)    s中的所有a替换成b

        Left(s,a)              从s左边取出a个字符串

        Mid(s,i,a)            从s的第i个字符开始,取出a个字符串

        Instr(s,a)             从s中查找a的位置,找不到返回0

        Instr(i,s,a)           从s中第i个字符开始查找a的位置,找不到返回0

  • 过程

    1.Sub ... End Sub

       例:

        Option Explicit

        Sub test()

          Call sumAll

        End Sub

        Sub sumAll()

          Dim i, j, s

          Dim w1 as Worksheet

          For i = 1 To Worksheets.Count

            Set w1 = Worksheets(i)

            s = 0

            For j = 2 To 10

 

              s = s + w1.Cells(j, 2)

            Next j

            w1.Cells(2, 3) = s

          Next i

        End Sub

    2.Function ... End Function (可以直接在单元格作为公式被调用)

      例:

        Function 客户分类(s)

          Dim score, level

          score = s

          if score <30 Then

            level = "温柔型"

          ElseIf score < 60 Then 

            level = "冲动型"

          Else

            level = "暴躁型"

          End If

          客户分类 = level

        End Function

 

  •  对象

    1.Application (Excel系统)

      Application.ActiveWorkbook                活动工作簿

      Application.ActiveSheet                            活动工作表

      Application.WorksheetFunction.公式名称

        例:Application.WorksheetFunction.Max(Range("b2:d7"))

      Application.DisplayAlerts = False              不显示警告框

      Application.DisplayAlerts = True               恢复显示警告框

      Application.Quit                                         退出Excel

    2.WorkBook (工作簿) ,对应属性:WorkBooks

      Workbooks.Open("D:\季度汇报\4月.xlsx")     打开一个工作簿

 

      Set wb = Workbooks.Add                              新建一个工作簿

        wb.Worksheets(1).Cells(3, 5) = 2016

        wb.SaveAs "D:\测试.xlsx"                       保存一个工作簿

        wb.Close                                                 关闭工作簿

    3.WorkSheet (工作表) ,对应属性:WorkSheets

      Worksheets.Count                   工作表个数

      Worksheets(1)                         第一个工作表

      Worksheets("第一个sheet")     名称叫"第一个sheet"的工作表

    4.Range (单元格内容区域) ,对应属性:Cells

      Cells(a, b)         

      Dim r As Range

          Set r = Range("A3:B7,D6,A2:F4")

       r.Interior.Color = vbYellow                             填充内容为黄色

      Set r = Range( Cells(2,3), Cells(5,7) )

      r = 5                      值为5

      Range.ClearContents   ClearFormats   Clear   清除内容,保留格式     清除格式,保留内容     内容和格式全部清除

      Range.Font.Size   Color   Bold   Italic               文字大小  颜色  粗体  斜体   rgb(255,0,0) (红,绿,蓝)

      Range.Merge    UnMerge                                 合并单元格  取消合并单元格

      例:

        With r.Font

          .Size = 15

          .Color = RGB(255, 0 ,0)

          .Bold = True

          .Italic = True

        End With

二、辅助工具

  • 调试器

    1.设置断点:参照eclipse方法

    2.单步执行:按F8

    3.添加监控:菜单-调试-添加监视

  • 录制宏

    1.菜单-开发工具-录制宏-手动操作-结束录制宏,在新建模块中自动生成手动操作对应的代码。

 

posted @ 2021-02-18 17:43  少年阿川  阅读(127)  评论(0)    收藏  举报