vba基础
1.换行: 空格+“_”+回车
2.集合【workbooks\worksheet\cells】
3.行:Range   单元格:Cell
4.中止死循环:ctrl+暂停键
5.判断是否为数字:IsNumeric(单元格)
1.7对象的属性:对象所具有的特性
  给单元格赋值  Sheet.Range("单元格位置")=" 值"
1.8 方法:对对象的操作
选择方法:Range("a1:a10").Sheet 【单元格默认选择活动工作表】
复制方法:Sheet1.Range("a1:a10").Copy Sheet2.Range("a1")sheet2中的a1单元格的值复制给sheet1的a1到a10
删除: Sheets(3).Delete 删除第三个表(不论表名是否是sheet3)
1.9常量和变量
常量定义:Const 常量名=常量表达式
变量定义:Dim 变量 As 变量类型
注意:  VBA允许使用未定义的变量,默认是变体变量(Variant)
             变量的强制声明
变量命名规则:以字母开头、不能用保留字、不超过255个字符、同一范围必须唯一
1.10数据类型
Integer        整型     %  2Byte
Single         单精度   !  4Byte
Double       双精度    #  8byte
Long           长整型    &  4byte
String          字符型    $   定长或者变长
Currency     货币型    @  8Byte
1.11判断语句
1.单行形式(If  条件判断  Then 条件成立结果) Then后可以用“ :”隔断执行多条语句
eg:Then a=a+1:b=b+1
2.If 条件判断 Then  条件成立 Else  条件不成立
3.快形式(If ...Then ....End)
If    ElseIf   End if    End Sub
VBA中IIF函数与工作表函数(if)的用法一致
eg:
Sub IIf应用()
Cells(2,3)=IIf(Cells(1,2)>80,"优秀","不优秀")
 End Sub
1.3 Select Case语句 根据表达式的值来决定执行几组语句中的其中之一
select case 变量
case 1
case 2
End Select
1.4循环do...loop,直到满足某个条件
Sub 基本演示()
Dim a%
Do
a = a + 1
If a > 10 Then
MsgBox a & "终于大于10"
Exit Do  '退出Do循环
End If
Loop
End Sub
1.5循环do...loop实例
1.6循环Do While 条件   条件成立循环体  Loop
1.17do until ...loop直到条件成立退出循环
隔行填色
 
1.18循环语句之WHILE与UNTIL位置变化
在循环的最后一行进行判断,until直到条件满足则不循环  while条件成立则循环
1.19For Each    Next   
For Each 变量 In  范围  循环体  Next  
1.20 For  Next 有一个内置计数器
For i=1 To 100 Step -2
1.22 exit 与end语句
退出语句
Exit Do/For/Function/  Sub
结束End
1.23 跳转语句
①Go To line 无条件地转移到过程中指定行  少用
line:  
 语句
Go To line
②go to ....return返回
1.24 错误分支语句  
①On Error Resume Next 当错误的时候继续执行下去   
②On Error GoTo 当错误的时候去哪
1.25with语句
当对某个对象执行一系列的语句时,不用重复指出 对象的名称   
1.26 BVA与公式
  普通公式
  数组公式  FormulaArray="=a1:a10+b1:b10"
 公式中带有函数sum(a" & i & ":b" & i &")
  公式中带引号 COUNTIF(A1:A10,"">9"")
工作表的公式引用
借用:Application.WorksheetFunction.函数名()
VBA函数:
BVA.Format(range("b1"),"yyyy年m月d日")
自定义函数
Function 函数名(申明变量)
函数体
End Function
1.29VBA运算符
1)赋值运算符 =
2)数学运算符 &(字符连接符) Mod(取余) \取整
3)逻辑运算符 Not  And  Or  Xor(异或)  Eqv(相等) ^指数
4)关系运算符 =相等   <>不相等
1.30 like运算符
比较两个字符串:区分大小写、
通配符“?”任何单字符   、“*”零个或多个字符  、“#”0-9数子 、[charlist]在数组中的任何字符
2.0 工作簿与工作表基础知识
工作簿表示方法Workbooks(名字/索引)
窗口表示Windows.count
3-0
range常见写法
单元格 Range ("a1").Select
列Range("a:a").Select
行Range("1:1").select
相邻区域Range("a1:b10")
不相邻区域Range("a1:d7 c4:e8")
Cells单元格引用:cells(行号,列号)、cells.Select全选
cells(6)从左到右从上到下第六个单元格
行列引用
列引用Columns(1或者a).Select
注意:当引用多列的时候不能使用数子只能使用字母进行而且必须要加上双引号
列引用Range("1:1")
简写[a:a].Select
不能有空的单元格时:Application.CountA(Columns(1))统计a列有多少有值
移动复制
带格式复制
Range("a1:d8").Cut Range("f1")
Range("f1:i8").Copy Range("a1")
不带格式复制数据
Range("a10:d17")=Range("a1:d8").Value将a1到d8 复制给a10到d17
3-15.  WorkSheet.UsedRange属性:
返回一个Range属性,指定工作表使用区域
没有使用区域时返回a1单元格
3-16.Range.CurrentRegion属性
返回一个Range对象,表示当前区域【单元格空上一格及以上就选不上】
3-17.Range.offset(偏移行,偏移列 )属性
3-18Range.Resize(行数,列数)性
返回调整指定区域大小【扩大或者缩小】
3-19Range.EntireRow属性
返回Range对象所包含的指定区域的整行或多行
Range.EntireColumn 列
3-20specialcells(Type,Value)定位
返回一个Rnage,返回指定类型和匹配的所有单元格
3-21 Range.Find方法
表达式.Find(What,After,LookIn,LookAt,SearchOrder,SearchDirection....)
3-25单元格的End属性
Range.End(Direction )
Application.Union()方法
Aplication.Intersect(Range1,Range2)1与2 相交的部分
 
4、事件
1)事件程序
2)应用程序事件:对象 工作簿
 ①申明变量Public WithEvents app As Excel.Application
 ②工作簿打开时运行
3)工作簿
4)工作表  
事件中的Cancel:默认为false。为true时在完成事件内代码效果时,终止当前操作的后续效果
控制事件的开关
Application.EnableEvents属性
True启用或者False  
作用:临时关闭,防止死循环。
5-1数组[永远无法保存]
Dim arr1(3) 0~3
Dim arr(1 To 3) 1~3
Dim arr3(1 To 3,1 To 2)  (1~3,1~2)
arr=Arrary(1,2,3,4)
UBound(arr,1):第一维的上界
UBound(arr)确定数组某一维度的上界【第一个数值为上界,】
ReDim [Preserve] varname()[As type]动态数组变量重新分配存储空间  
重新定义数组:Preserve
eg:arr=[{1,2,3}]
  ReDim Preserve arr(1 To 5)
数组由1,2,3变为长度为5 的新数组且前三个值为1,2,3
split函数:将字符串转换为一维数组   
Jion函数:将一个数组转换为字符串
Filter(arr,"#",True/False):筛选数组arr包含/不包含的#字符的字符串
index(arr,0,2):对二位数组进行一行或者一列的截取
字典
调用 1:工具-引用-浏览-找到scrrun.dll-确定
调用2:直接创建,后期绑定
 Set d= CrrateObject("scripting.dictionary")
字典方法:
1.向字典中添加一对字典条目:Object.Add(key,item)
2.Exists: d.Exists("李四") d中是否有“李四”返回true或者false
3.Remove:d.Remove("李四")从对象中清楚一个关键字
4.RemoverAll:清除所有的关键字
5.keys返回所有关键字  Items返回所有条目
字典属性:
CompareMode对大小写区分属性d.CompareMode=1 【1:不区分大小写0:区分大小写】
d.Count项目中Item个数
d.Key("王五")=“ss”修改王五为ss、
d.Item("张三")=“123”修改张三的条目为123【】
正则表达式:
Dim regx As New ReExp
regx.Global=True  查找范围  true全部查找  false只查找第一个【默认为false】
regx.Execute(sr):返回匹配成功的结果,是一个对象
regx.Replace(sr,"-") 将匹配成功的结果做替换
消息框:
信息提示框MsgBox
输入框:Application.InputBox
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号