【办公软件】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.菜单-开发工具-录制宏-手动操作-结束录制宏,在新建模块中自动生成手动操作对应的代码。

浙公网安备 33010602011771号