1、Visual Basic高手语法整理篇1 分 支 结 构 条件表达式、变量、常数都可以 (1) If 条件 Then 语句块 End If (2) If 条件 Then 语句块1 Else 语句块2 End If (3) If 条件1 Then 语句块1 ElseIf 条件2 Then 语句块2 ElseIf 条件N Then 语句块N Else 语句块N+1 End If 嵌套If语句-(实际很少用) (4) If 条件1 Then If 条件2 Then 语句块1-1 Else 语句块1-2 End If 其他语句 Else 语句块2 End If(1)Select Case 变量名或表达
2、式 Case 表达式1 比较具体值是否相等 语句块1 相等则执行本语句块 Case 表达式2 (1) Case 2,4,6,8,10 语句块2 (2) Case 1 To 10 Case 表达式N (3) Case Is 20 语句块N (4) Case ab , ef Case Else (5) Case ab To ef 语句块N+1 (6) Case 2,4,1 To 10,Is 20,ab To ef End Select 要点 1,Select 语句可以嵌套 2,只有当 If ElseIf 语句中每个表达式都相同时才能用Select语句代替 例:Sub 多重判断() 见VBA57页
3、If Range(“A1”) 0 Then Range(“B1”) = “大于零” End If End Sub Sub 多重判断() Select Case Range(“A1”) Case Is 0 Range(“B1”) = “大于零” End Select End Sub (2) IIF (条件,条件为真的值,条件为假的值) 若条件为真,则取第一个值(条件为真的值) 否则条件为假,则取第二个值(条件为假的值) 2 循 环 结 构 (1) For 计数变量名 = 起始值 To 终止值 Step 步进值 语句块 步进为1时可省略 Next 计数变量名 步进值可为正负整数 可省略不写 (2)
4、 For 计数变量名 1 = 起始值 1 To 终止值 1 For 计数变量名 2 = 起始值 2 To 终止值 2 语句块 Next 计数变量名 2 其它语句 Next 计数变量名 1 要点:1 能确定循环终止值时首先确定用 For Next 循环 2 循环内一般不用修改计数变量的值 3 Exit For 语句只能退出当前循环 4 第一次进入循环时计数变量会被设定为起始值 (1) Do 语句块 Loop (2) Do While 条件表达式 语句块 只要条件表达式成立,就继续执行循环 Loop (3) Do 语句块 Loop While 条件表达式 只要条件表达式成立,就继续执行循环 (4)
5、 Do 语句块 Loop Until 条件表达式 只要条件表达式成立,就退出循环 (5) Do Until 条件表达式 语句块 只要条件表达式成立,就退出循环 Loop (1) Do While 条件表达式 语句块 只要条件表达式成立,就继续执行循环 Loop While 条件表达式 语句块 只要条件表达式成立,就继续执行循环 Wend (2) Go To 标记 功能:可任意前跳后跳 标记:语句或空白 命名规则与变量相同,汉字串也可以 也可用数字(0-2147483647),此时“:“可省略 要点:1 可以用 Exit Do 退出 Loop 循环(If 条件表达式 Then Exit Do)2
6、 For 循环自带隐含计数器,其它条件循环必须另加计数器 I = I + 1(或I = I - 1),其它条件循环要在进入循环之前设置计数器初值。 实例实例150317、377,VBA58页 (3)For Each 个体变量 In 指定的集合 语句 Next 个体变量 3 子 程 序 结 构 (1)创建子程序:代码窗口选择通用输入Sub 子程序名后回车即可。 英文汉字都可以(见VBA) 模块中输入: Public Sub 子程序名() 或 Private Sub 子程序名() 能被任何位置主程序调用(可省略) 只能在同一模块(或同一代码窗口)内调用 (2)最简单调用:把子程序名当成一个语句即可
7、 (3)主程序格式:Call 子程序名(变量或常数1,变量或常数2,-) Call 子程序名(变量或常数1),(变量或常数2),-) 要点:1 实际参数是常数时,常数直接替代形式参数的值。 2 实际参数是变量时,则以变量本身替代形式参数本身。 3 变量或常数加上“()”,则以变量的值或常数本身替代形式参数的值。 (4)子程序格式: Sub 子程序名(形式参数1 As 数据类型1,形式参数2 As 数据类型2,-) 语句块 End Sub Sub 子程序名(Byval(或ByRef) 形式参数1 As 数据类型1, Byval(或ByRef) 形式参数2 As 数据类型2,-) 语句块 End
8、Sub 例:Private Sub Worksheet_SelectionChange(ByVal Target As Range) (VBA50页) 要点:1 加上 Byval 后不管主程序什么格式,调用都是传值调用,调用后不会改变原主程序变量的值。 2 加上Byref 则是传变量调用,调用后会改变原主程序变量的值。 3 注意:主程序声明的数据类型必须与子程序声明的数据类型一致,否则报错。 4 函 数 结 构 (1)创建函数:代码窗口选择通用输入Function 函数名后回车即可。 Function 函数名() 函数名=表达式 函数最后要传回一个值,所以必定有此语句。 End Functio
9、n Function 函数名(形参1,形参2)As 数据类型 函数名=表达式 End Function 声明函数返回值的类型 (2)最简单调用:(子程序)Call 子程序名(变量或常数1,变量或常数2,-) (函数) V=函数名(变量或常数1,变量或常数2,-) 例:Public Function 工作表个数() 工作表个数 = ThisWorkbook.Sheets.Count End Function Public Sub 求工作表个数() Dim a As Integer a = 工作表个数() MsgBox 工作表个数= & a End Sub (3)子程序或函数递归调用子程序或函数调
10、用自己本身 Private Sub Form_Load Dim a As Integer A=age(5) Msgbox 第五个人的年龄是 + Str (a) End Sub Function age(n As Integer) As Integer If (n=1) Then age=10 End If End Function 5 数 组 结 构 (1)数组的声明: Dim 数组名(N) As 数据类型 下标范围是0-N,起始下标是固定值0 Dim 数组名(M To N) As 数据类型 下界 上界,下标可以是正数,也可以是负数 Dim 数组名+数据类型声明符号(N) 例如:Dim Z$(
11、9) 下标范围读取: V1=LBound (数组名) 读起始下标 V2=UBound (数组名) 读终止下标 数据存取:数组名后加上“(数据顺序)”, 例如:X(0)=100 要点:不能一次读取或指定整个数组的数据,如:Dim X(5) As Integer X=100 错误 (2)动态数组的声明: ReDim 数组名(N) As 数据类型 Dim 数组名() As 数据类型 调整数组大小:ReDim 数组名(M To N) 新的下标范围 ReDim Preserve 数组名(M To N) 调整大小时保留数组中的数据 将变量变成数组 :Dim X X=Array(北京,上海,天津) 注意Ar
12、ray函数的传回的值只能指定给不定型变量 (3)二维数组的定义:含有2个下标的数组称为二维数组 二维数组的声明:Dim X (3,5) As 数据类型 行(下标03) 列(下标05) 0列 1列 2列 3列 4列 5列 0行 (0,0) (0,1) (0,2) (0,3) (0,4) (0,5) 1行 (0,0) (0,1) (0,2) (0,3) (0,4) (0,5) 2行 (0,0) (0,1) (0,2) (0,3) (0,4) (0,5) 3行 (0,0) (0,1) (0,2) (0,3) (0,4) (0,5) 数据存取:要使用2个下标确定行列位置 例:X(1,2)= 0.7 Print(3,2) (4)多维数组的定义:含有2个以上下标的数组称为多维数组 多维数组的声明:Dim X (1, 2, 3,.) As 数据类型 有几个下标就是几维数组 (4)控件数组:控件Index属性值就是该控件在数组中的下标 6 API 函 数 结 构 (1)API函数:API函数时Windows内部专供应用程序调用的函数 对象属性Hwnd:不同系统资源唯一的识别码,相当于VB中对象的Name属性 声明位置:模块通用处用Public声明则其它模块都能调用 窗体通用处只能用Private声明并在本窗体中调用,否则提示“不支持” kernel
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1