vba

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.属性方法导图

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值