VBA函数(免费)
vba常用代码大全

前言我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个, 功能强大,丰富多彩,但是在VBA中不能直接应用,必须在函数名前面加上对象,比如: Application.WorksheetF unction .Sum(argl,arg2,arg3)o而能在VBA中直接应用的函数也有儿十个,下面将逐一详细介绍常用的40个VBA函数, 以供大家学习参考。
第1.1例ASC函数一、题目:要求编写一段代码,运行后得到字符串” Excel”的首字母和” e”的ASCII值。
二、代码:Sub 示例—1_01()Dim myNuml%, myNum2%myNuml 二Asc("Exce门’返回69myNum2 二Asc("e")'返回101[al]二"myNuml二n: [bl] = myNuml[a2] = "myNum2= ": [b2] = myNum2End Sub三、代码详解1、S ub示例_1_010:宏程序的开始语句。
2、D im myNuml%, myNum2%:变量myNuml 和myNum2 声明为整型变量。
也可以写为Dim myNuml As Integer <> Integer变量存储为16位(2个字节)的数值形式,其范围为-32,768到32,767之间。
Integer的类型声明字符是白分比符号(%)。
3、m yNuml = Asc("Excel"):把Asc 函数的值赋给变量myNuml»Asc函数返回一个Integer,代表字符串中首字母的字符的ASCD代码。
语法Asc(string)必要的string (字符串)参数可以是任何有效的字符串表达式。
如果string中没有包含任何字符,则会产生运行时错误。
4、m yNum2 = Asc("e"):把Asc函数的值赋给变量myNum2。
VBA常用函数汇总及使用方法

VBA常用函数汇总及使用方法在Excel宏的编程过程中,VBA(Virtual Basic for Applications)是一门非常重要的编程语言。
作为VBA的一部分,函数在编写宏时发挥着重要的作用。
它们可以简化编程过程、提高效率,同时还可以处理和操作各种数据类型。
本文将为您介绍一些常用的VBA函数及其使用方法,帮助您更好地进行Excel宏的编程。
一、常用函数和使用方法1. Len函数Len函数用于返回字符串的长度。
在使用Len函数时,需要将待计算长度的字符串放入括号中,并将函数返回的值赋给一个变量。
示例代码:```Dim str as StringDim length as Integerstr = "Hello World"length = Len(str)MsgBox "字符串的长度为:" & length```2. Left函数和Right函数Left函数和Right函数分别用于返回字符串的左侧和右侧指定个数的字符。
这两个函数需要两个参数,第一个参数是待处理的字符串,第二个参数是要返回的字符数。
示例代码:```Dim str as StringDim leftStr as StringDim rightStr as Stringstr = "Hello World"leftStr = Left(str, 5)rightStr = Right(str, 5)MsgBox "左侧5个字符为:" & leftStrMsgBox "右侧5个字符为:" & rightStr```3. Mid函数Mid函数用于返回字符串中指定位置开始的指定字符数的字符串。
这个函数有三个参数,分别是待处理的字符串、开始位置和要返回的字符数。
示例代码:```Dim str as StringDim subStr as Stringstr = "Hello World"subStr = Mid(str, 7, 5)MsgBox "子字符串为:" & subStr```4. UCase函数和LCase函数UCase函数用于将字符串转换为大写,LCase函数用于将字符串转换为小写。
vba中常用的内置函数

vba中常用的内置函数VBA(Visual Basic for Applications)是一种用于Microsoft Office套件中的宏编程语言。
它允许用户通过编写脚本来自动化任务、处理数据和创建自定义功能。
在VBA中,有许多内置函数可用于执行各种常见任务。
本文将介绍一些常用的VBA内置函数,并提供示例和用法说明。
1. Len函数:用于计算字符串的长度。
它返回一个整数值,表示给定字符串中的字符数。
例如,Len("Hello World")将返回11,因为该字符串包含11个字符。
2. Left函数:用于从字符串的左侧提取指定数量的字符。
它接受两个参数:要提取的字符串和要提取的字符数。
例如,Left("Hello World", 5)将返回"Hello",因为它提取了字符串的前5个字符。
3. Right函数:与Left函数类似,但是从字符串的右侧提取指定数量的字符。
例如,Right("Hello World", 5)将返回"World",因为它提取了字符串的最后5个字符。
4. Mid函数:用于从字符串的任意位置提取指定数量的字符。
它接受三个参数:要提取的字符串、要从中提取字符的起始位置和要提取的字符数。
例如,Mid("Hello World", 7, 5)将返回"World",因为它从字符串的第7个字符开始提取了5个字符。
5. InStr函数:用于在字符串中查找子字符串的位置。
它接受三个参数:要搜索的字符串、要查找的子字符串和要开始搜索的位置。
它返回一个整数值,表示找到的子字符串的位置。
如果未找到子字符串,则返回0。
例如,InStr("Hello World", "World")将返回7,因为它在字符串中找到了子字符串"World"。
VBA函数大全(自己整理的)

VBA函数大全(自己整理的) Abs函数返回一个与参数类型相同的绝对值。
Array函数返回一个包含数组的Variant。
Asc函数返回一个整数,代表字符串中首字母的字符代码。
Atn函数返回一个双精度浮点数,指定一个数的反正切值。
CallByName函数执行一个对象的方法,或者设置或返回一个对象的属性。
Choose函数从参数列表中选择并返回一个值。
Chr函数返回一个字符串,其中包含与指定的字符代码相关的字符。
Cos函数返回一个双精度浮点数,指定一个角的余弦值。
___函数创建并返回一个对ActiveX对象的引用。
CurDir函数返回一个代表当前路径的字符串。
CVErr函数返回一个包含指定错误号的Error子类型的Variant。
Date函数返回一个包含系统日期的Variant(Date)。
DateAdd函数返回一个包含指定时间间隔后的日期的Variant(Date)。
DateDiff函数返回一个Variant(Long)的值,表示两个指定日期间的时间间隔数目。
DatePart函数返回一个包含已知日期的指定时间部分的Variant(Integer)。
DateSerial函数返回一个包含指定的年、月、日的Variant(Date)。
DateValue函数返回一个Variant(Date)。
Day函数返回一个表示一个月中某一日的1到31之间的整数。
DDB函数返回一个双精度浮点数,指定一笔资产在一特定期间内的折旧。
Dir函数返回一个符合指定模式、文件属性或磁盘卷标的文件名、目录名或文件夹名称的字符串。
DoEvents函数转让控制权,以便让操作系统处理其他事件。
Environ函数返回一个与操作系统环境变量相关的字符串。
在Macintosh中不可用。
EOF函数返回一个包含布尔值True的整数,表明已经到达为Random或顺序Input打开的文件的结尾。
Error函数返回对应于已知错误号的错误信息。
Exp函数返回一个双精度浮点数,指定e(自然对数的底)的某次方。
vba常用代码大全

前言我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,但是在VBA中不能直接应用,必须在函数名前面加上对象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。
而能在VBA中直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA 函数,以供大家学习参考。
第1.1例 ASC函数一、题目:要求编写一段代码,运行后得到字符串”Excel”的首字母和”e”的ASCII 值。
二、代码:Sub 示例_1_01()Dim myNum1%, myNum2%myNum1 = Asc("Excel") '返回69myNum2 = Asc("e") '返回101[a1] = "myNum1= ": [b1] = myNum1[a2] = "myNum2= ": [b2] = myNum2End Sub三、代码详解1、Sub 示例_1_01():宏程序的开始语句。
2、Dim myNum1%, myNum2%:变量myNum1和myNum2声明为整型变量。
也可以写为 Dim myNum1 As Integer 。
Integer 变量存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间。
Integer 的类型声明字符是百分比符号 (%)。
3、myNum1 = Asc("Excel"):把Asc函数的值赋给变量myNum1。
Asc函数返回一个 Integer,代表字符串中首字母的字符的ASCII代码。
语法Asc(string)必要的 string(字符串)参数可以是任何有效的字符串表达式。
如果 string 中没有包含任何字符,则会产生运行时错误。
4、myNum2 = Asc("e"):把Asc函数的值赋给变量myNum2。
VBA常用内部函数及其参数

VBA常用内部函数及其参数VBA (Visual Basic for Applications) 是一种用于在微软 Office应用程序中编写宏的编程语言。
在 VBA 中,有许多常用的内部函数可供使用,这些函数可以帮助开发人员更好地处理数据、字符串、日期等。
下面是一些常用的 VBA 内部函数及其参数的详细介绍。
1.数据类型处理函数:- CBool(expression):将表达式转换为布尔类型,返回 True 或False。
- CByte(expression):将表达式转换为 Byte 类型整数,取值范围为 0 到 255- CInt(expression):将表达式转换为整数类型,返回不大于表达式的最大整数。
- CLng(expression):将表达式转换为长整型,返回不大于表达式的最大长整数。
- CDbl(expression):将表达式转换为双精度浮点数,返回一个浮点数。
- CStr(expression):将表达式转换为字符串类型。
2.字符串处理函数:- Len(string):返回字符串的长度。
- Left(string, length):返回字符串左侧的指定长度的子字符串。
- Right(string, length):返回字符串右侧的指定长度的子字符串。
- Mid(string, start, length):返回字符串中指定起始位置和长度的子字符串。
3.数学函数:- Abs(number):返回给定数字的绝对值。
- Sqr(number):返回给定数字的平方根。
- Round(number, num_digits):将数字四舍五入到指定的位数。
- Int(number):返回小于或等于给定数字的最大整数。
- Fix(number):返回最接近零的整数。
- Randomize([number]):初始化随机数生成器。
- Rnd(:返回一个随机数,取值范围为 0 到 14.日期和时间函数:- Now(:返回当前的日期和时间。
常用VBA函数精选

常用VBA函数精选前言我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,但是在VBA中不能直接应用,必须在函数名前面加上对象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。
而能在VBA中直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA函数,以供大家学习参考。
第1.1例ASC函数一、题目:要求编写一段代码,运行后得到字符串”Excel”的首字母和”e”的ASCII 值。
二、代码:Sub 示例_1_01()Dim myNum1%, myNum2%myNum1 = Asc("Excel") '返回69myNum2 = Asc("e") '返回101[a1] = "myNum1= ": [b1] = myNum1[a2] = "myNum2= ": [b2] = myNum2End Sub三、代码详解1、Sub 示例_1_01():宏程序的开始语句。
2、Dim myNum1%, myNum2%:变量myNum1和myNum2声明为整型变量。
也可以写为Dim myNum1 As Integer 。
Integer 变量存储为16位(2 个字节)的数值形式,其范围为-32,768 到32,767 之间。
Integer 的类型声明字符是百分比符号(%)。
3、myNum1 = Asc("Excel"):把Asc函数的值赋给变量myNum1。
Asc函数返回一个Integer,代表字符串中首字母的字符的ASCII代码。
语法Asc(string)必要的string(字符串)参数可以是任何有效的字符串表达式。
VBA代码全集模板

目录一、引用 (3)二、Worksheet_Change事件: (3)三、相乘 (5)四、相减 (6)五、高级筛选 (6)六、双击事件 (8)七.单位汇总(sumif),单条件汇总 (10)八、多条件汇总(连接、sumif) (13)九、多条件汇总、ado (15)十、对账 (16)十一、sql筛选 (20)十二、sql连接、交叉汇总 (21)十三、select语句总结 (23)十四、报表(有层次) (24)一、引用相对引用B4绝对引用$B$4混合引用$B4、B$4F4进行引用切换,$在字母前面则锁定列,在数字前面则锁定行。
二、Worksheet_Change 事件:1.在单元格中C4=VLOOKUP(B4,简码表!$B$4:$C$1000,2,FALSE)2. Worksheet_Change事件代码:Private Sub Worksheet_Change(ByVal Target As Range)On error resume nextIf Target.Row > 3 And Target.Column = 2 Theni = Target.RowCells(i, 3) = Application.WorksheetFunction.VLookup(Cells(i, 2), Sheets("简码表").Range("b4:c100"), 2, False)End IfEnd Sub备查代码:Private Sub Worksheet_Change(ByVal Target As Range)On Error Resume NextIf Target.Row > 3 And Target.Column = 5 Theni = Target.RowCells(i, 6) = Application.WorksheetFunction.VLookup(Cells(i, 5), Sheets("类款项").Range("b2:e2000"), 2, False)Cells(i, 7) = Application.WorksheetFunction.VLookup(Cells(i, 5), Sheets("类款项").Range("b2:e2000"), 3,False)Cells(i, 8) = Application.WorksheetFunction.VLookup(Cells(i, 5), Sheets("类款项").Range("b2:e2000"), 4, False)End IfEnd Sub三、相乘Sub 计算金额()Application.ScreenUpdating = FalseDim i As LongDim irow As Longirow = Range("a3").End(xldown).RowFor i = 4 To irowCells(i, 3) = Cells(i, 1) * Cells(i, 2)Next iApplication.ScreenUpdating = TrueEnd Sub四、相减Sub 相减()Application.ScreenUpdating = FalseRange("c3:c10000").ClearContentsDim i As LongDim irow As Longirow = Range("a5000").End(xlUp).RowFor i = 3 To irowCells(i, 3) = VBA.Round((Cells(i, 1) - Cells(i, 2)), 2)Next iApplication.ScreenUpdating = TrueEnd Sub五、高级筛选(工具-宏-录制新宏,宏名改成高级筛选)Sub 高级筛选()Sheets("业务").Range("A3:I10000").AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=ActiveCell.Range("A1:B1"), Unique:=TrueEnd Sub六、双击事件1.插入-名称-定义(修改名称和引用位置)2.查看代码-插入-用户窗体工具箱-多页、列表框-右键属性点击page1修改caption为资产类-点击空白列表框修改rowsource 为box1依次类推3. 业务表-查看代码 Worksheet beforedoubleclickPrivate Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Row > 3 And Target.Column = 6 ThenUserForm1.ShowSheets("初始化").Range("m3") = ActiveCellElseIf Target.Row > 3 And Target.Column = 7 ThenUserForm2.ShowEnd IfEnd Sub备查代码:Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Row > 3 And Target.Column = 6 ThenUserForm1.ShowSheets("初始化").Range("c2") = ActiveCellElseIf Target.Row > 3 And Target.Column = 7 ThenUserForm2.ShowSheets("初始化").Range("f2") = ActiveCellElseIf Target.Row > 3 And Target.Column = 8 ThenUserForm3.ShowEnd IfEnd Sub4.右键点击Userform1查看代码 Listbox1 dbclickPrivate Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)ActiveSheet.Cells(ActiveCell.Row, 6) = ListBox1.List(ListBox1.ListIndex, 0)Unload MeEnd SubPrivate Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)ActiveSheet.Cells(ActiveCell.Row, 6) = ListBox1.List(ListBox2.ListIndex, 0)Unload MeEnd SubPrivate Sub ListBox3_DblClick(ByVal Cancel As MSForms.ReturnBoolean)ActiveSheet.Cells(ActiveCell.Row, 6) = ListBox1.List(ListBox3.ListIndex, 0)Unload MeEnd SubPrivate Sub ListBox4_DblClick(ByVal Cancel As MSForms.ReturnBoolean)ActiveSheet.Cells(ActiveCell.Row, 6) = ListBox1.List(ListBox4.ListIndex, 0)Unload MeEnd SubPrivate Sub ListBox5_DblClick(ByVal Cancel As MSForms.ReturnBoolean)ActiveSheet.Cells(ActiveCell.Row, 6) = ListBox1.List(ListBox5.ListIndex, 0)Unload MeEnd Sub见上图5.插入用户窗体右键点击userform2 worksheet dblclickPrivate Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)ActiveSheet.Cells(ActiveCell.Row, 7) = ListBox1.List(ListBox1.ListIndex, 0)Unload MeEnd SubUserform initializePrivate Sub UserForm_Initialize()Application.ScreenUpdating = FalseWith Sheets("初始化")Sheets("科目表").Range("h2:i10000").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=.Range("m2:m3"), CopyToRange:=.Range("n2"), Unique:=TrueEnd WithApplication.ScreenUpdating = TrueEnd Sub七.单位汇总(sumif),单条件汇总=SUMIF(业务!$D$4:$D$1000,单位汇总!$A15,业务!I$4:I$10000)Sub 单位汇总1()Application.ScreenUpdating = Falserange("a1:i10000").ClearCells(3, 2) = "指标数"Cells(3, 3) = "拨款数"Cells(3, 4) = "余额"Cells(1, 7) = "单位"Cells(3, 7) = "单位"Cells(3, 8) = "指标数"Cells(3, 9) = "拨款数"Sheets("业务").Range("D3:D10000").AdvancedFilter Action:=xlFilterCopy, _CopyToRange:=Range("A3"), Unique:=TrueSheets("业务").Range("A3:J10000").AdvancedFilter Action:=xlFilterCopy, _CriteriaRange:=Range("G1:G2"), CopyToRange:=Range("G3:I3"), Unique:=FalseDim i As LongDim irow As Longirow = Range("a3").End(xlDown).RowFor i = 4 To irowCells(i, 2) = Application.WorksheetFunction.SumIf(Range("g4:g10000"), Cells(i, 1), Range("h4:h10000"))Cells(i, 3) = Application.WorksheetFunction.SumIf(Range("g4:g10000"), Cells(i, 1), Range("i4:i10000"))Cells(i, 4) = VBA.Round(Cells(i, 2) - Cells(i, 3), 2)Next iRange("g1:i10000").ClearApplication.ScreenUpdating = TrueEnd Sub八、多条件汇总(连接、sumif)连接=k4&l4&m4&n4Vba:Sub 多条件汇总()Application.ScreenUpdating = FalseRange("a1:p10000").ClearSheets("业务").Range("D3:G10000").AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Range("B3:E3"), Unique:=TrueSheets("业务").Range("D3:I10000").AdvancedFilter Action:=xlFilterCopy, _CopyToRange:=Range("K3:P3"), Unique:=FalseDim j As LongDim jrow As Longjrow = Range("k3").End(xlDown).RowFor j = 4 To jrowCells(j, 10) = Cells(j, 11) & Cells(j, 12) & Cells(j, 13) & Cells(j, 14)Next jDim i As LongDim irow As Longirow = Range("b3").End(xlDown).RowFor i = 4 To irowCells(3, 6) = "指标数"Cells(3, 7) = "拨款数"Cells(3, 8) = "余额"Cells(i, 1) = Cells(i, 2) & Cells(i, 3) & Cells(i, 4) & Cells(i, 5)Cells(i, 6) = Application.WorksheetFunction.SumIf(Range("j4:j10000"), Cells(i, 1), Range("o4:o10000"))Cells(i, 7) = Application.WorksheetFunction.SumIf(Range("j4:j10000"), Cells(i, 1), Range("p4:p10000"))Cells(i, 8) = VBA.Round(Cells(i, 6) - Cells(i, 7), 2)Next iRange("i3:p10000").ClearRange("a1:a10000").DeleteApplication.ScreenUpdating = TrueEnd Sub九、多条件汇总、adoSub 多条件汇总()Application.ScreenUpdating = FalseDim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT 单位,类,款,项, sum(指标数) as 预算股指标,sum(拨款数) as 预算股拨款 from[业务$a3:J10000] where 归口='" & Range("h2").Value & "'and 月<=" & Range("i2").Value & " GROUP BY 单位,类,款,项"rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("多条件汇总").Cells(3, i) = rst.Fields(i - 1).Name Next iSheets("多条件汇总").Range("a4").CopyFromRecordset rst rst.Closecnn.CloseSet rst = NothingSet cnn = NothingApplication.ScreenUpdating = TrueEnd Sub十、对账Sub 预算股()Application.ScreenUpdating = FalseDim i As IntegerDim strsql1 As StringDim cnn1 As New ADODB.ConnectionDim rst1 As New ADODB.Recordsetcnn1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql1 = " SELECT 单位,类,款,项, sum(指标数) as 预算股指标 from[预算股$a3:m50000] where 归口='" & Range("h2").Value & "'and 月<=" & Range("i2").Value & " GROUP BY 单位,类,款,项" rst1.Open strsql1, cnn1For i = 1 To rst1.Fields.CountSheets("对帐").Cells(3, i + 10) = rst1.Fields(i - 1).NameNext iSheets("对帐").Range("k4").CopyFromRecordset rst1rst1.Closecnn1.CloseSet rst1 = NothingSet cnn1 = NothingDim strsql2 As StringDim cnn2 As New ADODB.ConnectionDim rst2 As New ADODB.Recordsetcnn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql2 = " SELECT 单位,类,款,项, sum(指标数) as 专业股指标 from[专业股$a3:j50000] where 归口='" & Range("h2").Value & "'and 月<=" & Range("i2").Value & " GROUP BY 单位,类,款,项" rst2.Open strsql2, cnn2For i = 1 To rst2.Fields.CountSheets("对帐").Cells(3, i + 19) = rst2.Fields(i - 1).NameNext iSheets("对帐").Range("t4").CopyFromRecordset rst2rst2.Closecnn2.CloseSet rst2 = NothingSet cnn2 = Nothings = Application.WorksheetFunction.CountA(Range("k4:k10000")) + 4Range("T4:W10000").SelectSelection.CopyRange("K" & s).SelectActiveSheet.PasteRange("X4:X10000").SelectSelection.CopyRange("P" & s).SelectActiveSheet.PasteRange("X3").SelectSelection.CopyRange("P3").SelectActiveSheet.PasteDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT 单位,类,款,项, sum(预算股指标) as 预算股指标 ,sum(专业股指标) as 专业股指标 from[对帐$k3:p50000] GROUP BY 单位,类,款,项"rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("对帐").Cells(3, i) = rst.Fields(i - 1).NameNext iSheets("对帐").Range("a4").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingApplication.ScreenUpdating = TrueEnd Sub十一、sql筛选Sub 筛选()Application.ScreenUpdating = FalseDim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT distinct 单位,类,款,项 from[专业$a3:h10000]"rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("筛选").Cells(3, i) = rst.Fields(i - 1).NameNext iSheets("筛选").Range("a4").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingApplication.ScreenUpdating = True End Sub十二、sql连接、交叉汇总Sub 连接()Application.ScreenUpdating = FalseDim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT 股,月,归口,单位,类,款,项,指标数 from [专业$a3:h10000] union ALL SELECT 股,月,归口,单位,类,款,项,指标数 from [预算$a3:l10000] order by 股 desc"rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("连接").Cells(1, i + 19) = rst.Fields(i - 1).NameNext iSheets("连接").Range("t2").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingApplication.ScreenUpdating = TrueEnd SubSub 汇总()Application.ScreenUpdating = FalseCall 连接Dim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " transform sum(指标数) SELECT 单位,类,款,项 from [连接$t1:aa10000] where 归口= '" & Range("h2").Value & "' and 月=" & Range("i2").Value & " group by 单位,类,款,项 pivot 股" rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("连接").Cells(3, i) = rst.Fields(i - 1).NameNext iSheets("连接").Range("a4").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingRange("t1:aa10000").ClearContentsApplication.ScreenUpdating = TrueEnd Sub十三、select语句总结1、筛选(false ---筛选全部)Select 列表名称1,列表名称2,…….列表名称n from [表$区域]或者Select * from [表$区域]2、筛选唯一的数据Select distinct 列表名称1,列表名称2,…….列表名称n from [表$区域]3、分类汇总Select 列表名称1,列表名称2,…….列表名称n,sum(a) as a from [表$区域]Group by列表名称1,列表名称2,…….列表名称n4、条件分类汇总Select 列表名称1,列表名称2,…….列表名称n,sum(a) as a from [表$区域]Where 归口=’”& range(“”).value &”’ and 月=”& range(“”).value &” Group by列表名称1,列表名称2,…….列表名称n5、交叉汇总Transform sum() select 列名称1,……列名称n from[表$区域] group by 列名称1,…..列名称n pivot 交叉事项6、连接Select 列名称1,…列名称n from[表$区域] union all Select 列名称1,…列名称n from[表$区域] order by 列名称 desc十四、报表(有层次)连接Transform sum(指标数),pivot 股按单位、类、款进行汇总按单位、类进行汇总按单位进行汇总连接以上四个表的内容,并按单位、类、款、项进行排序,其中单位按降序排序1、整体写代码Sub 报表()Application.ScreenUpdating = FalseDim i As IntegerDim strsql1 As StringDim cnn1 As New ADODB.ConnectionDim rst1 As New ADODB.Recordsetcnn1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql1 = " SELECT 股,月,归口,单位,类,款,项,sum(指标数) as 指标数 from[专业$a3:h10000] group by 股,月,归口,单位,类,款,项 union all SELECT 股,月,归口,单位,类,款,项,sum(指标数) as 指标数 from[预算$a3:l10000] group by 股,月,归口,单位,类,款,项 order by 股 desc"rst1.Open strsql1, cnn1For i = 1 To rst1.Fields.CountSheets("报表").Cells(3, i + 9) = rst1.Fields(i - 1).NameNext iSheets("报表").Range("j4").CopyFromRecordset rst1rst1.Closecnn1.CloseSet rst1 = NothingSet cnn1 = NothingDim strsql2 As StringDim cnn2 As New ADODB.ConnectionDim rst2 As New ADODB.Recordsetcnn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql2 = "transform sum(指标数) SELECT 单位,类,款,项 from[报表$j3:q10000] where 归口='" & Range("g2") _.Value & "' and 月<=" & Range("h2").Value & " group by 单位,类,款,项 order by 单位 desc pivot 股 "rst2.Open strsql2, cnn2For i = 1 To rst2.Fields.CountSheets("报表").Cells(3, i + 19) = rst2.Fields(i - 1).NameNext iSheets("报表").Range("t4").CopyFromRecordset rst2rst2.Closecnn2.CloseSet rst2 = NothingSet cnn2 = NothingDim strsql3 As StringDim cnn3 As New ADODB.ConnectionDim rst3 As New ADODB.Recordsetcnn3.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql3 = "SELECT 单位,类,款,sum(专业股) as 专业股,sum(预算股) as 预算股 from[报表$t3:y10000] group by 单位,类,款 order by 单位 desc"rst3.Open strsql3, cnn3For i = 1 To rst3.Fields.CountSheets("报表").Cells(3, i + 26) = rst3.Fields(i - 1).NameNext iSheets("报表").Range("aa4").CopyFromRecordset rst3rst3.Closecnn3.CloseSet rst3 = NothingSet cnn3 = NothingDim strsql4 As StringDim cnn4 As New ADODB.ConnectionDim rst4 As New ADODB.Recordsetcnn4.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql4 = "SELECT 单位,类,sum(专业股) as 专业股,sum(预算股) as 预算股 from[报表$t3:y10000] group by 单位,类 order by 单位 desc"rst4.Open strsql4, cnn4For i = 1 To rst4.Fields.CountSheets("报表").Cells(3, i + 32) = rst4.Fields(i - 1).NameNext iSheets("报表").Range("ag4").CopyFromRecordset rst4rst4.Closecnn4.CloseSet rst4 = NothingSet cnn4 = NothingDim strsql5 As StringDim cnn5 As New ADODB.ConnectionDim rst5 As New ADODB.Recordsetcnn5.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql5 = "SELECT 单位,sum(专业股) as 专业股,sum(预算股) as 预算股 from[报表$t3:y10000] group by 单位 order by 单位 desc"rst5.Open strsql5, cnn5For i = 1 To rst5.Fields.CountSheets("报表").Cells(3, i + 37) = rst5.Fields(i - 1).NameNext iSheets("报表").Range("al4").CopyFromRecordset rst5rst5.Closecnn5.CloseSet rst5 = NothingSet cnn5 = NothingColumns("AD:AD").SelectSelection.Insert Shift:=xlToRightRange("ad3") = "项"Columns("Aj:Ak").SelectSelection.Insert Shift:=xlToRightRange("aj3") = "款"Range("ak3") = "项"Columns("Ap:Ar").SelectSelection.Insert Shift:=xlToRightRange("ap3") = "类"Range("aq3") = "款"Range("ar3") = "项"Dim strsql6 As StringDim cnn6 As New ADODB.ConnectionDim rst6 As New ADODB.Recordsetcnn6.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql6 = " SELECT 单位,类,款,项,专业股,预算股 from [报表$t3:y10000] union all SELECT 单位,类,款,项,专业股,预算股 from [报表$aa3:af10000] union all SELECT 单位,类,款,项,专业股,预算股 from [报表$ah3:am10000] union all SELECT 单位,类,款,项,专业股,预算股 from [报表$ao3:at10000] order by 单位 desc,类,款,项 "rst6.Open strsql6, cnn6For i = 1 To rst6.Fields.CountSheets("报表").Cells(3, i) = rst6.Fields(i - 1).NameNext iSheets("报表").Range("a4").CopyFromRecordset rst6rst6.Closecnn6.CloseSet rst6 = NothingSet cnn6 = NothingRange("j1:au10000").ClearContentsDim p As LongDim prow As Longprow = Range("a3").End(xlDown).RowFor p = 4 To prowRange("g3") = "金额"Cells(p, 7) = VBA.Round(Cells(p, 6) - Cells(p, 5), 2)Next pApplication.ScreenUpdating = TrueEnd Sub2、分开写代码:Sub 连接()Application.ScreenUpdating = FalseDim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT 月,归口,股,单位,类,款,项,sum(指标数) as 指标数 from[专业$a3:h10000] group by 月,归口,股,单位,类,款,项 union all SELECT 月, 归口,股,单位,类,款,项,sum(指标数) as 指标数 from[预算$a3:l10000] group by 月, 归口,股,单位,类,款,项 order by 股 desc"rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("报表").Cells(3, i + 9) = rst.Fields(i - 1).NameNext iSheets("报表").Range("j4").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingApplication.ScreenUpdating = TrueEnd SubSub 项()Application.ScreenUpdating = FalseCall 连接Dim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';DataSource=" & ThisWorkbook.FullNamestrsql = "transform sum(指标数) SELECT 单位,类,款,项 from [报表$j3:q10000] where 归口= '" & Range("g2").Value & "' and 月<=" & Range("h2").Value & " group by 单位,类,款,项 pivot 股"rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("报表").Cells(3, i + 19) = rst.Fields(i - 1).NameNext iSheets("报表").Range("t4").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingApplication.ScreenUpdating = TrueEnd SubSub 款()Application.ScreenUpdating = FalseCall 项Dim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT 单位,类,款, sum(专业股) as 专业股, sum(预算股) as 预算股 from [报表$t3:y10000] group by 单位,类,款 "rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("报表").Cells(3, i + 26) = rst.Fields(i - 1).NameNext iSheets("报表").Range("aa4").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingColumns("AD:AD").SelectSelection.Insert Shift:=xlToRightCells(3, 30) = "项"Application.ScreenUpdating = TrueEnd SubSub 类()Application.ScreenUpdating = FalseCall 款Dim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT 单位,类, sum(专业股) as 专业股, sum(预算股) as 预算股 from [报表$aa3:af10000] group by 单位,类 "rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("报表").Cells(3, i + 33) = rst.Fields(i - 1).NameNext iSheets("报表").Range("ah4").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingColumns("AJ:AJ").SelectSelection.Insert Shift:=xlToRightColumns("AK:AK").SelectSelection.Insert Shift:=xlToRightRange("AJ3").SelectActiveCell.FormulaR1C1 = "款"Range("AK3").SelectActiveCell.FormulaR1C1 = "项"Application.ScreenUpdating = TrueEnd SubSub 单位()Application.ScreenUpdating = FalseCall 类Dim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT 单位, sum(专业股) as 专业股, sum(预算股) as 预算股 from [报表$ah3:am10000] group by 单位 "rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("报表").Cells(3, i + 40) = rst.Fields(i - 1).NameNext iSheets("报表").Range("ao4").CopyFromRecordset rstrst.CloseSet rst = NothingSet cnn = NothingApplication.ScreenUpdating = True Columns("AP:AP").SelectSelection.Insert Shift:=xlToRight Columns("AQ:AQ").SelectSelection.Insert Shift:=xlToRight Columns("AR:AR").SelectSelection.Insert Shift:=xlToRight Range("AP3").SelectActiveCell.FormulaR1C1 = "类"Range("AQ3").SelectActiveCell.FormulaR1C1 = "款"Range("AR3").SelectActiveCell.FormulaR1C1 = "项" End SubSub 报表()If Range("i2") = "类" ThenCall 类ElseIf Range("i2") = "款" ThenCall 款ElseCall 项End IfEnd SubSub 总报表()Application.ScreenUpdating = FalseDim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT 单位,类,款,项,专业股,预算股 from [报表$t3:y10000] union all SELECT 单位,类,款,项,专业股,预算股 from [报表$aa3:af10000] union all SELECT 单位,类,款,项,专业股,预算股 from [报表$ah3:am10000] union all SELECT 单位,类,款,项,专业股,预算股 from [报表$ao3:at10000] order by 单位 desc,类,款,项 "rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("报表").Cells(3, i) = rst.Fields(i - 1).NameNext iSheets("报表").Range("a4").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingRange("j1:br10000").ClearApplication.ScreenUpdating = TrueEnd Sub插入图片Sub 按钮48_单击() 宏按钮名,编码时自动生成On Error Resume NextDim MR As RangeFor Each MR In SelectionIf Not IsEmpty(MR) ThenMR.SelectML = MR.LeftMT = MR.TopMW = MR.WidthMH = MR.HeightActiveSheet.Shapes.AddShape(msoShapeRectangle, ML, MT, MW, MH).SelecterPicture _End IfNextEnd Sub与EXCEL表在同一个文件夹里,。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函數語言元件說明Abs 函數傳回一個數字的絕對值。
Array 函數傳回包含陣列的Variant。
Asc 函數傳回對應到字串中第一個字母的ANSI 字元碼。
Atn 函數傳回一個數字的餘切值。
CBool 函數傳回已轉換成Boolean 次型態Variant 的運算式。
CByte 函數傳回已轉換成Byte 次型態Variant 的運算式。
CCur 函數傳回已轉換成Currency 次型態Variant 的運算式。
CDate 函數傳回已轉換成Date 次型態Variant 的運算式。
CDbl 函數傳回已轉換成Double 次型態Variant 的運算式。
Chr 函數傳回與指定的ANSI 字元碼相關的字元。
CInt 函數傳回已轉換成Integer 次型態Variant 的運算式。
CLng 函數傳回已轉換成Long 次型態Variant 的運算式。
Cos 函數傳回一個角度的餘弦值。
CreateObject 函數建立並傳回一個Automation 物件的參考。
CSng 函數傳回已轉換成Single 次型態Variant 的運算式。
CStr 函數傳回已轉換成String 次型態Variant 的運算式。
Date 函數傳回目前的系統日期。
DateAdd 函數傳回已加入指定的時間間隔的日期。
DateDiff 函數傳回兩個日期之間的間隔數。
DatePart 函數傳回特定日期的指定部分。
DateSerial 函數傳回指定年、月、日的Date 次型態Variant。
DateValue 函數傳回Date 次型態的Variant。
Day 函數傳回介於 1 到31 之間的整數(包括 1 和31),代表月份中的日期。
Eval 函數求出運算式的值,並傳回結果。
Exp 函數傳回 e (自然對數的底數) 的某次方。
Filter 函數傳回從零起算的陣列,其中包含一個根據指定的過濾標準所得的字串陣列子集。
Fix 函數傳回數字的整數部分。
FormatCurrency函數傳回已設定成貨幣值格式的運算式,此貨幣值使用系統控制台中所定義之貨幣符號。
FormatDateTime函數傳回已設定成日期或時間格式的運算式。
FormatNumber 函數傳回已設定成數字格式的運算式。
FormatPercent 函數傳回一個運算式,其格式設定成後面跟著% 字元的百分比值。
GetLocale 函數傳回目前語系識別碼(LocaleID) 的值。
GetObject 函數從檔案傳回Automation 物件的參考。
GetRef 函數傳回一個程序的參考,而且這個程序必須可以與某個事件結合。
Hex 函數傳回一個字串,代表一個數字的十六進位值。
Hour 函數傳回介於0 到23 之間的整數(包括0 和23),代表一天中的小時。
InputBox 函數以對話方塊顯示提示,等使用者輸入文字或按一下按鈕,再傳回文字方塊的內容。
InStr 函數傳回一個字串在另一個字串中第一次出現的位置。
InStrRev 函數傳回一個字串在另一個字串中出現的位置,而且該位置是從字串的後面算起。
Int 函數傳回數字的整數部分。
IsArray 函數傳回一個布林值,指出變數是否為陣列。
IsDate 函數傳回一個布林值,指出運算式是否可以轉換成日期。
IsEmpty 函數傳回一個布林值,指出變數是否已初始化。
IsNull 函數傳回一個布林值,指出運算式是否不包含任何有效的資料(Null)。
IsNumeric 函數傳回一個布林值,指出運算式能否求出數字。
IsObject 函數傳回一個布林值,指出運算式是否引用有效Automation 物件的運算式。
Join 函數傳回一個字串,它是結合陣列中所包含的數個子字串。
LBound 函數傳回指示的陣列維數可用的最小陣列索引。
LCase 函數傳回已轉換成小寫的字串。
Left 函數傳回字串左端指定個數的字元。
Len 函數傳回字串中指定個數的字元,或儲存一變數所需的位元個數。
LoadPicture 函數傳回圖片物件。
只適用於32 位元平台。
Log 函數傳回一個數字的自然對數。
LTrim 函數傳回一個字串沒有前置空白的副本。
Mid 函數傳回字串中指定個數的字元。
Minute 函數傳回介於0 到59 之間的整數(包含0 和59),代表一小時中的分鐘。
Month 函數傳回介於 1 到12 之間的整數(包含 1 和12),代表一年中的月份。
MonthName 函數傳回表示指定月份的字串。
MsgBox 函數以對話方塊顯示訊息,等使用者按一下按鈕再傳回數值,指出使用者按了哪個按鈕。
Now 函數根據電腦的系統日期和時間設定傳回目前的日期和時間。
Oct 函數傳回一個字串,代表一個數字的八進位值。
Replace 函數傳回一個字串,其中指定子字串已由別的子字串取代指定的次數。
RGB 函數傳回代表RGB 色彩值的整數。
Right 函數傳回字串右端指定個數的字元。
Rnd 函數傳回一個亂數。
Round 函數傳回已進位到指定小數位的數字。
RTrim 函數傳回一個字串沒有後續空白的副本。
ScriptEngine 函數傳回一個字串,代表使用中的Scripting 程式語言。
ScriptEngineBuildVersion 函數傳回使用中Scripting 引擎的建立版本號碼。
ScriptEngineMajorVersion 函數傳回使用中Scripting 引擎的主要版本號碼。
ScriptEngineMinorVersion 函數傳回使用中Scripting 引擎的次要版本號碼。
Second 函數傳回介於0 到59 之間的整數(包含0 和59),代表一分鐘中的秒數。
SetLocale 函數設定全域語系並傳回原來的語系。
Sgn 函數傳回指出數字之正負號的整數。
Sin 函數傳回一角度的正弦值。
Space 函數傳回由指定個數的空白組成的字串。
Split 函數傳回從零起算的一維陣列,其內容包含指定個數的子字串。
Sqr 函數傳回一個數字的平方根。
StrComp 函數傳回表示字串比較結果的值。
String 函數傳回指定長度的重覆字元字串。
StrReverse 函數傳回一個字串,它將指定字串的字元順序顛倒過來。
Tan 函數傳回一個角度的正切值。
Time 函數傳回指出目前系統時間的Date 次型態Variant。
Timer 函數傳回從12:00 AM (午夜) 起到現在已經過的秒數。
TimeSerial 函數傳回內含指定時、分、秒的Date 次型態Variant。
TimeValue 函數傳回內含指定時間的Date 次型態Variant。
Trim 函數傳回一個字串沒有前置或後續空白的副本。
TypeName 函數傳回一個字串,以提供有關某個變數的次型態資訊。
UBound 函數傳回指示的陣列維數可用的最大陣列索引。
UCase 函數傳回已轉換成大寫的字串。
VarType 函數傳回指出變數次型態的值。
Weekday 函數傳回代表一周中某天的整數。
WeekdayName 函數傳回代表一周中某天的字串。
Year 函數傳回代表年份的整數。
加號運算子(+) 加總兩個數字。
And 運算子在兩個運算式中執行邏輯結合。
指定運算子(=) 將一個值指定給一個變數或屬性。
串連運算子(&) 強迫連結兩個運算式。
除號運算子(/) 將兩個數字相除,並傳回一個浮點結果。
Eqv 運算子在兩個運算式中執行邏輯性全等運算。
指數運算子(^) 求一個數字的指定指數次方。
Imp 運算子在兩個運算式中執行邏輯性包含運算。
整數除號運算子(\) 將兩個數字相除,並傳回整數結果。
Is 運算子比較兩個物件參考變數。
Mod 運算子將兩個數字相除,並且只傳回餘數。
乘號運算子(*) 將兩個數字相乘。
負數運算子(-) 指出數值運算式的負值。
Not 運算子在一個運算式中執行邏輯性的負數運算。
運算子優先順序列出VBScript 中所用的各種運算子優先順序。
Or 運算子在兩個運算式中執行邏輯性分離運算。
減號運算子(-) 求出兩個數字的差,或指出數值運算式的負值。
Xor 運算子再兩個運算式中執行邏輯性互斥運算。
Call 陳述式將控制權交給Sub 或Function 程序。
Class 陳述式宣告物件類別的名稱。
Const 陳述式宣告常數,用來取代文字值。
Dim 陳述式宣告變數,並配置儲存空間。
Do...Loop 陳述式在條件為True 的情況下重覆一段陳述式,或一直重覆到條件變成True 為止。
Erase 陳述式重新初始化固定大小陣列的元件,並取消配置動態陣列的儲存空間。
Execute 陳述式執行一或多個指定的陳述式。
ExecuteGlobal陳述在script 的全域命名空間中執行一或多個指定的陳述式。
Exit 陳述式結束一段Do...Loop、For...Next、Function 或Sub 程式碼。
For...Next 陳述式重覆一組陳述式指定的次數。
For Each...Next 對陣列或集合物件的每個元件重覆一組陳述式。
Function 陳述式宣告名稱、引數和程式碼,以構成Function 程序的主體。
If...Then...Else 根據運算式的值有條件地執行一組陳述式。
On Error 陳述式啟動錯誤處理常式。
Option Explicit 強迫script 中的所有變數須明確宣告。
Private 陳述式宣告私有的變數,並配置儲存空間。
PropertyGet 陳述式宣告名稱、引數和程式碼,以構成Property 程序的主體,這個程序會取得(傳回) 一個屬性的值。
PropertyLet 陳述式宣告名稱、引數和程式碼,以構成Property 程序的主體,這個程序會指定一個屬性的值。
PropertySet 陳述式宣告名稱、引數和程式碼,以構成Property 程序的主體,這個程序會設定指向一個物件的引用。
Public 陳述式宣告公用的變數,並配置儲存空間。
Randomize 陳述式初始化亂數產生器。
ReDim 陳述式宣告動態陣列變數,並配置或取消配置程序階層的儲存空間。
Rem 陳述式在程式中包含說明性的註解。
Select Case 陳述式根據運算式的值執行幾組陳述式之一。
Set 陳述式指定物件參考給變數或屬性。
Sub 陳述式宣告名稱、引數和程式碼,以構成Sub 程序的主體。
While...Wend陳述式只要已知條件為True,就一直執行一串陳述式。
With 陳述式對單一物件執行一串陳述式。