0】变量
Dim intX 未声明类型则为Var
Dim intZ As Integer 为整型 Dim intS%
Dim strS As String 为整型 Dim strS$
Dim dbS As Double 为整型 Dim dbS#
Dim rng as Range Set r1 = Range("A1:B2")
b = 1 Range("a" & b).Select 单元格A1被选中;
Cells(11, 5) cells中用,号。表示第几行,第几列。返回该单元格内容
“&” —— 字符串连接。MyStr = "Check " & 123 ' 返回 "Check 123"。
另“+” —— 既可计算数值的和,也可以做字符串的连接。
所以一般用+就行了
1】
For … Next 循环
其语法如下:
For <计数器=开始数> To <结束数> [step 步长]
[指令]
[Exit For]
[指令]
Next [计数器]
eg:
For i = 18 To 1000 Step 3
2】
过程 (无返回值)
过程由一组完成所要求操作任务的VBA语句组成。
调用其他过程用call 过程名
Sub 过程名称 ([参数])
End Sub
3】
函数
函数(function)是能完成特定任务的相关语句和表达式的集合。当函数执行完毕时,它会向调用它的语句返回一个值。
Function <函数名> ([参数]) [As 类型]
[指令]
[函数名=表达式]
[Exit Function]
[指令]
[函数名=表达式]
End Function
4】
类模块
类模块是存放共享变量以及共享代码的存储库。创建一个类模块,实际上也是在创建一个COM(组件对象模型)接口。
5】
vba的注释是单引号'
6】
Go to语句
将程序转到指定的标签的语句位置,然后继续往下执行。Go to 语句通常用来作错误处理。
7】
宏
设置宏快捷键一般为:Ctrl+m 或Ctrl+l 或Ctrl+e
宏实际上就是一个简单的VBA的Sub过程,它保存在模块里,以Sub开头,以End
8】
引用
当我们引用“mybook.xls”里面的工作表“mysheet”时应是:Application.Workbooks(“mybook.xls”).Worksheets(“mysheet”)
9】
vba中,选中代码,按F1即可查看帮助。
10】
引用对象及对象的属性、方法等用点来分隔
对象和事件之间用_下划线。
11】
定义变量
Dim 变量名 As 数据类型
直接输入“Dim 变量名”此时定义的变量将被指定为Variant类型。
赋值:一般用""。日期用##号
12】
提示:一行的代码过长,可以用空格加下划线进行换行。
表示还是一行代码
13】
删除
[a1].Delete Shift:=xlUp ' 下方单元格上移(默认)
[a1].Delete Shift:=xlToLeft ' 右侧单元格左移
[a1].EntireRow.Delete ' 整行删除
[a1].EntireColumn.Delete ' 整列删除
14】
range对象的end属性
End属性返回的单元格就相当于在源单元格按住Ctrl键+上(或下、左、右)方向键所得到的单元格
Sheet(1).[a65536].End(xlUp).Row语句返回sheet(1)表a列的最后一个非空单元格的行号。
15】
Set dqh = Sheets(1).Cells(2, 1).Resize(1, 12)
意思是在第二行第一列的单元格基础上从1扩选到第12个单元格。
16】
添加工作表
Worksheets.add(before:=Worksheets(1)).Name = "33"
17】
对数值、文本等变量赋值时可以直接=,而对对象(如工作薄对象,工作表对象,单元格区域等)赋值时要用set语句
18】
多个区域时
union(range("b3:c4"),range("e5;f6"))
19】
xlToLeft ,xlToRight,xlUp,xlDown
end按顺序可简写为:1,2,3,4。这里的End(3)实际上是:End(xlup)
20】
调试输出
Debug.Print 999
21】
On Error Resume Next
错误时继续运行
22】
UsedRange
属性应用于Worksheet对象,返回指定工作表中已使用区域的Range对象
23】with用来简化代码
With oRegExp
.Global = True '匹配所有
.IgnoreCase = True '不区分大小写
.Pattern = "[\u4e00-\u9fa5]+"
End With
等价于
oRegExp.Global = True '匹配所有
oRegExp.IgnoreCase = True '不区分大小写
oRegExp.Pattern = "[\u4e00-\u9fa5]+"
24】区域查找
经典查找案例解析
Sub F9() '区域查找
Dim MRG As Range, AAA As String
Dim ss
Set MRG = Range("D1:D16").Find("D")
ss = Cells(MRG.Row, MRG.Column + 1).Value
AAA = MRG.Address
Do
Set MRG = Range("D1:D16").FindNext(MRG)
ss = ss + Cells(MRG.Row, MRG.Column + 1).Value
Loop Until MRG.Address = AAA
End Sub
其实区域查找就要用
DO
FindNext()
Loop Until
但要设置跳出循环的条件,
那就是
Set MRG = Range("D1:D16").Find("D")
AAA = MRG.Address
获得地址用在 Loop Until MRG.Address = AAA
则区域查找框架:
Dim MRG As Range, AAA As String
Set MRG = Range("D1:D16").Find("D")
AAA = MRG.Address
Do
Set MRG = Range("D1:D16").FindNext(MRG)
Loop Until MRG.Address = AAA
25】区域查找应用for小巩
Function VVlOOKUP(str, rng) 'VlOOKUP多个
Dim MRG As Range, AAA As String
Set MRG = rng.Find(str)
AAA = MRG.Address
ss = Sheets(4).Cells(MRG.Row, MRG.Column + 1) + ","
Do
Set MRG = rng.FindNext(MRG)
ss = ss + Sheets(4).Cells(MRG.Row, MRG.Column + 1) + ","
Loop Until MRG.Address = AAA
GNum = ss
End Function
26】
Set MRG = Range("D1:D16").Find("2", , , xlWhole)精确查找。默认
Set MRG = Range("D1:D16").Find("2", , , xlPart)模糊查询
VBA之excel小结
最新推荐文章于 2024-04-01 21:51:31 发布