1.注释
以 ‘ 开头的语句会被视为注释
以关键字 REM 开头的句子
2.MsgBox
函数显示一个消息框,并等待用户点击一个按钮,然后根据用户点击的按钮执行相应的操作
MsgBox(prompt[,buttons][,title][,helpfile,context])
' prompt - 在对话框中显示的字符串,换行可用Chr(13)或者Chr(10)表示
' buttons - 显示的按钮的类型,默认为0
' title - 对话框的标题,默认为应用程序名称
' helpfile - 为对话框提供的帮助文件
' context - 对helpfile进行编号,helpfile为context的基础
buttons参数值
- 0 – “确定”
- 1 – “确定” + “取消”
- 2 – “中止” + “重试” + “忽略”
- 3 – “是” + “否” + “取消”
- 4 – “是” + “否”
- 5 – “重试” + “取消”
- 16 – 显示严重消息图标
- 32 – 显示警告查询图标
- 48 – 显示警告消息图标
- 64 – 显示信息消息图标
- 0 – 第一个按钮是默认的
- 256 – 第二个按钮是默认的
- 512 – 第三个按钮是默认的
- 768 – 第四个按钮是默认的
- 0 – 应用程序模式 – 当前的应用程序将不会工作,直到用户响应消息框
- 4096 – 系统模式 – 所有的应用程序将不会工作,直到用户响应消息框
buttons返回值
- 0 – “确定”被点击
- 1 – “取消”被点击
- 2 – “中止”被点击
- 3 – “忽略”被点击
- 4 – “是”被点击
- 5 – “否”被点击
3.InputBox
函数提示用户输入值。当输入值后,如果点击确定,则返回输入的文本。如果点击取消,则返回一个空字符串。
InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
' prompt - 在对话框中显示为消息对的字符串
' title - 标题名称
' default - 用户希望显示的文本框中的默认文本
' xpos - x轴的位置表示离屏幕左侧的距离
' ypos - y轴的位置表示离屏幕上方的距离
' helpfile - 帮助信息
' context - 帮助信息的编号
4.变量
Dim <<variable_name>> As <<variable_type>>
' 声明变量
数字数据类型
- Byte – 0~255
- Integer – 2个字节
- Long – 4个字节
- Single –
- Double –
- Currency – 8个字节
- Decimal –
非数字数据类型
- String – 字符串
- Date – 日期
- Boolean – true/false
- Oblect – 对象
- Variant(numeric) – 比double大的数字
- Variant(text) – 和string一样
5.常量
Const <<constant_name>> As <<constant_type>> = <<constant_value>>
' 为一个常量赋值
6.运算符
算术操作符
- “+” – 加
- “-” – 减
- “*” – 乘
- “/” – 除
- “%” – 取模
- “^” – 指数运算
比较运算符
- “=” – 判断是否相等
- “<>” – 判断是否不想等
- “>” – 判断是否大于
- “<” – 判断是否小于
- “>=” – 判断是否不小于
- “<=” – 判断是否不大于
逻辑运算符
- “AND” – 与
- “OR” – 或
- “NOT” – 非
- “XOR ” – 异或
连接操作符
“+” – 数字则为加,字符串为连接
“&” – 连接两个值
7.判断
if (a>b) then
xxx;
elseif (a>c) then
xxxx;
else
xxxxx;
end if
select case a
case 1
xxx
case 2
xxxx
case 3
xxxxx
case else
xxxxxx
end select
8.循环
for i = 0 to 10 step 2
MsgBox("i = " & i)
next i
fruit = Array("apple", "banana", "watermelon")
Dim Fruitnames AS Variant
for each item in fruit
Fruitnames = Fruitnames & item & Chr(10)
next
while count < 15
count = count + 1
wend
do while count < 5
count = count + 1
loop
do
count = count + 1
loop while count < 3
9.字符串
InStr – 返回指定子字符串的第一个匹配项,从左到右搜索
InStr([start,]string1,string2[,compare])
' start - 从左侧开始,起始位置,默认为0
' string1 - 被搜索的字符串
' string2 - 去搜索的字符串
' compare - 进行二进制比较还是文本比较
InstrRev – 返回指定字符串的第一个匹配项,从右到左搜索
InstrRev(string1,string2[,start][,compare])
' start - 从右侧开始,起始位置,默认为0
' string1 - 被搜索的字符串
' string2 - 去搜索的字符串
' compare - 进行二进制比较还是文本比较
Lcase – 返回指定字符串为小写字母
Lcase(string)
Ucase – 返回指定字符串为大写字母
Ucase(string)
Left – 返回在左侧指定数量的字符串
Left(string,length)
' string - 字符串
' length - 从左侧,需要返回的字符数
Right – 返回在右侧指定数量的字符串
Right(string,length)
' string - 字符串
' length - 从右侧,需要返回的字符数
Mid – 根据指定的参数从字符串中返回特定数量的字符
Mid(string,start[,length])
' string - 字符串
' start - 指定字符串的起始位置
' length - 需要返回的字符数
Ltrim – 删除指定字符串最左侧的空格后返回一个字符串
LTrim(string)
' string - 字符串
Rtrim – 删除指定字符串最右侧的空格后返回一个字符串
RTrim(string)
' string - 字符串
Trim – 删除开头和结尾空格后返回字符串
Trim(string)
' string - 字符串
Len – 返回给定字符串的长度
Len(string)
' string - 字符串
Replace – 用另一个字符串替换字符串后返回字符串
Space – 用指定数量的空格填充字符串
Space(number)
StrComp – 比较两个字符串返回一个判断值
StrComp(string1,string2[,compare])
' string1 - 第一个比较的字符串
' string2 - 第二个比较的字符串
' compare - 执行二进制比较还是文本比较
String – 返回一个字符串
String(number, character)
' number - 重复的次数
' character - 重复的字符
StrReverse – 翻转一个字符串
StrReverse(string)
' string - 需要翻转的字符串
10.日期函数&时间函数
日期函数
Date – 返回当前的系统日期 – 待验证
date()
CDate – 将指定的输入转换为日期
cdate(date)
' date - 无规则的日期形式
DateAdd – 返回一个时间加上某一时间间隔后的时间
DateAdd(interval,number,date)
' interval - 那个时间,年或日或秒。。。。
' d - 几号
' m - 月份
' y - 一年中的日子
' yyyy - 年份
' w - 星期
' ww - 周
' q - 季度
' h - 小时
' mi - 分钟
' s - 秒数
' number - 时间间隔
' date - 日期时间
DateDiff – 返回两个时间之差
DateDiff(interval,date1,date2[,firstdayofweek[,firstweekofyear]])
' interval - 表示求那个时间的差
' date1 - 第一个时间
' date2 - 第二个时间
' firstdayofweek - 指定一周的第一天
' firstweekofyear - 指定一年的第一天
DatePart – 返回给定输入日期值的指定部分
DateSerial – 返回给定年份,月份,日期的有效日期
FormatDateTime – 根据提供的参数格式化日期
IsDate – 判断是否为一个日期
Day – 表示某一天
Month – 表示某一月
Year – 表示某一年
MonthName – 返回指定日期的特定月份的名称
WeekDay – 返回星期几
WeekDayName – 返回星期几的名称
时间函数
Now – 返回当前系统的日期和时间
Hour – 返回当前的小时数
Minute – 返回当前的分钟数
Second – 返回当前的秒数
Time – 返回当前的系统时间
Timer – 返回自上午12:00点以来的秒数和毫秒数
TimeSerial – 返回小时,分钟和秒的特定输入的时间
TimeValue – 将输入字符串转换为时间格式的函数
11.数组
声明数组
' 声明一维数组
dim arr()
dim arr(5)
dim arr as array(11,22,33)
' 声明二维数组
dim arr(2,3) as variant
' 重新为array分配存储空间
redim [preserve] varname(subscripts)
' preserve - 表示是否要保留以前的数据
数组方法
LBound – 返回一个整数,对应于给定数组的最小下标
UBound – 返回一个整数,对应于给定数组的最大下标
Split – 将字符串拆分成数组。根据分隔符
Join – 将数组组合成字符串
Filter – 根据条件筛选字符串
IsArray – 判断是否是数组
Erase – 为数组变量恢复分配的内存
12.函数
语法
function fun_name(para)
xxx
xxx
fun_name = aaa ' 此句为返回值
end function
13.子过程
子过程没有返回值
子过程通过call来调用
因为子过程没有返回值,所以不能用来调用需要返回值的事情
14.事件
工作表事件
事件名称 | 事件说明 |
Activate | 激活工作表时发生 |
BeforeDoubleClick | 双击工作表之后,默认的双击操作之前发生 |
BeforeRightClick | 右击工作表之后,默认的右击操作之前发生 |
Calculate | 重新计算工作表之后发生 |
Change | 工作表中的单元格发生更改时发生 |
Deactivate | 工作表由活动工作表变为不活动工作表时发生 |
FollowHyperlink | 单击工作表中的任意超链接时发生 |
PivotTableUpdate | 在工作表中更新数据透视表之后发生 |
SelectionChange | 工作表中所选内容发生更改时发生 |
工作簿事件
事件名称 | 事件说明 |
NewWorkbook | 新建工作簿时发生 |
SheetActivate | 激活工作表时发生 |
SheetChange | 工作表内容发生改变时发生 |
WorkbookBeforeClose | 关闭应用程序前发生 |
WorkbookBeforePrint | 执行打印动作前发生 |
15.对象
Application – 应用程序对象
常用属性
ActiveCell – 当前激活的一个单元格,range对象
Selection – 被选中的多个单元格,range对象
ActiveWorkbook – 当前激活的一个工作簿,workbook对象
workbooks – 用于获取当前打开的多个工作簿
sheets – 用于获取当前被激活的工作簿下的所有工作表,包括图标
worksheets – 用于获取当前被激活的工作簿下的说有sheet表
caption – 标题
range – 指定的(一个或多个)单元格
ScreenUpdating – 屏幕更新
常用方法
Application.WorkBooks.Open("c:\test.xlsx") ' 打开工作簿
Application.WorkBooks.Add ' 添加工作簿
Application.WorkBooks.Close ' 关闭所有工作簿,但不关闭excel
Application.Quit ' 退出excel
Application.OnTime ' 定时执行
Workbook – 工作簿对象
常用属性
ActiveSheets – 当前激活的工作表,worksheet对象
EnableAutoRecovery – 自动恢复功能
HasPassword – 工作簿是否加密
Password – 密码
name – 文件名
Fullname – 全路径
Path – 路径
Readnoly – 是否只读
常用方法
dim wb as workbook
set wb = Application.workBooks.add
wb.worksheets(1) = "xxx"
wb.SaveAs
wb.xlMinimized
wb.WindowState
wb.Width
wb.Height
工作表对象
常用属性
cells – 表示当前激活工作表的所有单元格
columns – 表示所有列
next – 表示下一个,具体是下一个什么,得看具体情况
previous – 表示上一个,和next相反
range – 表示单个或多个单元格区域
rows – 表示行。无参的话,表示所有行
常用方法
Activate – 激活某一工作表
copy – 复制一个工作表
Paste – 将剪贴板的内容粘贴到工作表
访问工作表 – worksheets(1)或者worksheets(“sheets”)
新建工作表 – workshhets.add
删除工作表 – workshhet.delete
范围对象
16.文本文件
文件系统对象
创建一个文本文件
dim fso as new scripting.filesystemobject
dim wfsm as scripting.textstream
set wfsm = fso.createFile("d:\test.txt", true)
wfsm.writeline(now)
wfsm.close
打开一个文本文件
object.OpenText(filename[,iomode[,create[,format]]])
' filename - 全路径
' iomode - ForReading,ForWriting,ForAppending
' create - 如果文件不存在,是否创建。默认不创建
' format - 编码格式
17.编程图表
18.控件
- 标签 – 用于表现静态文件
- 分组框 – 用于将其他控件进行组合
- 按钮- 用于执行宏命令
- 复选框 – 选择控件
- 选项按钮 – 将几个选项按钮组合在一起使用,在一组中只能选择一个选项按钮
- 列表框 – 用于显示多个选项并从中选择,只能单选
- 组合框 – 用于显示多个选项并从中选择,可以选择其中的项目或者输入一个其他的值
- 滚动条 – 比如调节颜色的深度
- 微调控件 – 数值选择机制,通过单机控件的箭头来选择数值
19.with
可以减少重复的输入
with aaa
.bbb = xxx; ' 表示aaa.bbb
.ccc = xxx; ' 表示aaa.ccc
.ddd = xxx; ' 表示aaa.ddd
end with
20.range
引用单元格和区域
Range("A1") - 单元格A1
Range("A1:B5") - 从单元格A1到单元格B5的区域
Range("C5:D9,G9:H16") - 多区域
Range("A:A") - A列
Cells(1,1) - 单元格A1
Cells - 表示所有单元格
[A1:B5] - 与Range("A1:B5"等价)
' Range可以表示多个单元格,而Cells只能表示一个单元格。
' Range中是用字母表示列,而Cells用数字表示列,所以用Cells可以被用来做循环
Rows(1) - 第一行
Rows - 所有的行
Columns - 所有的列
Columns(1) - 第一列
Columns("A") - 第一列
Union(Rows(1),Rows(3)) - 第一行和第三行的集合,Range类型
' 因为一个单元格的集合可以命名
' 可以将Range("A1:B5")命名为myRange
Range("MyBook.xls!myRange") - 表示我们自定义的单元格区域
' 相对于其他单元格的位置来确定单元格
ActiveCell.Offset(1,3) - 表示下一行和右边三列
选定和激活单元格
Range("A1").Formula = "=SUM(A2:A4)"
' 必须先选中工作表,再选中单元格区域,否则会失效
WorkSheets(1).select
Range("A1").select - 选中单元格区域
Selection.Font.Bold = True - 表示被选中的区域应该做的操作
' 或者
ActiveCell.Font.Bold = True
ActiveCell.Offset(0,1).Active - 移动活动单元格
' 选定多张工作表上相同区域的单元格
Sheets(Array("Sheet1","Sheet2","Sheet3")).Select
Range("A1:B5").Select
Selection.Font.color = RGB(0,0,0)
20.属性方法导图