VBA 编程
-
开启宏 :视图-》宏
-
常用类型:整数型(Integer)、长整数型(Long)、字符串型(String)、日期型(Date),布尔型(Boolean)等。
-
定义变量:Dim 变量名 As 数据类型
Public 变量名 As 数据类型
Dim 变量名 As 对象类型 -
变量赋值:变量名称=数据
Set 变量名称=对象(Application(Excel应用程序)、Workbook(工作簿)、 Worksheet(工作表)、Range(单元格),数据流等) -
定义数组:Dim 数组名称(a to b) As 数据类型 (下标a-b,只能为常量,0-a简写为a)
Dim 名称 (x to y, n to m) As 数据类型 (多维数组)
Dim 数组名称() As 数据类型 (动态数组) -
数组赋值:数组名(索引)=数据 (单个赋值)
通过Array函数赋值:arr=Array(“red”,“yellow”,“blue”,“black”)
通过for循环赋值: Dim arr(3)
dim i as integer
for i=0 to ubound(arr)
arr(i)=i
next i
通过Range赋值:Dim arr as Variant --数组一定要定义成Variant变体类型
arr=Range(“A1:C13”).value -
数组相关函数:IsArray():IsArray(数组名) 返回 true or false --判断是否为数组
Erase():Erase 数组名 --重置固定大小的数组(数值数组:全为0
字符数组:全为零长度""
对象数组:全为特殊值无)
Redim(): Redim 数组(长度) --清空数据,重新定义大小
Lbound(): Lbound(数组名) --返回数组最小下标,Long 型数
Ubound(): Ubound(数组名) --返回数组最大下标,Long 型数据
– Lbound,Ubound 还有维度参数,多维数组可能可以用上 -
遍历数组:
for循环: for i=lbound(arr) to ubound(arr)
msgbox(arr(i))
next i
foreach循环: for each i in arr
msgbox(i)
next i -
If 语句:if 条件 then
Elseif else end if -
常用对象:MsgBox 信息 --弹出消息
cell(行数,列数or 列名) :Cells(16, “b”) Cells(16, 2) --为B16单元格
Range():有多种写法,表示一个或多个单元格例如:Range(“A1”, “E10”),Range(Cells(1, 1), Cells(10, 5))等 -
常用函数:
IsEmpty --是否空值
IsText –是否文本
Len –长度
IsError –是否错误值
IsArray –是否数组
IsDate --是否时间格式
IsNumeric –是否数字 -
过程 sub() --会执行动作,无返回值,参数可选
-
方法 Function() --1.返回一个数值,或者一个对象,参数可选 2.返回多值方法:
1).使用数组: 方法名=数组名
2). 使用Collection对象:
Dim var As New Collection
var.Add d1
Set 方法名 = var -
写文件:
Dim sFile As Object, Fso As Object
Set Fso = CreateObject(“Scripting.FileSystemObject”) --创建数据流对象
Set sFile = Fso.CreateTextFile(“D:/TestFile.txt”, True) --创建读写对象
sFile.WriteLine (“CreateTextFile Test”) --写数据,可以用对象
sFile.Close
Set sFile = Nothing
Set Fso = Nothing -
用户希望能够同时进行窗体及Excel工作表的操作,此时可以在窗体的Show方法之后加上一个值为False的参数。 UserForm1.Show False
-
编辑启动宏
-
调试 Debug.Print: 打开立即窗口,1.单击视图–>>单击立即窗口 2.使用快捷键:Ctrl+G
如何使用:相当于其他编程一样,将代码复制到立即窗口,使用Debug.Print 变量 ,在控制台打印出变量的值