VBA语言速查手册
Excel-VBA-速查手册

Excel-VBA-速查手册大纲:•VBA-入门•VBA-常用功能•VBA-实例造轮子系列•VBA-小技巧•VBA-图表•VBA-时间与日期•VBA-字典•VBA-数组•VBA-正则表达式•VBA-文件及文件夹操作•VBA-工作表美化•VBA-查找•VBA-邮件发送•VBA-窗体•VBA-算法挑战•VBA-其它VBA-入门1.VBA与Excel入门系列-01-Excel中的编辑器2.VBA与Excel入门系列-02-三大基本结构3.VBA与Excel入门系列-03-Excel的三个基本对象VBA表示4.VBA与Excel入门系列-04-小结5.VBA与Excel入门系列-05-常用函数上篇6.VBA与Excel入门系列-06-常用函数中篇7.VBA与Excel入门系列-07-常用函数下篇8.VBA与Excel入门系列-08-FSO(上篇)9.VBA与Excel入门系列-09-FSO(下篇)10.VBA与Excel入门系列-10-VBA自学神器<录制宏>11.VBA与Excel入门系列-11-ASCII12.VBA与Excel入门系列-12-正则表达式(上篇)13.VBA与Excel入门系列-13-正则表达式(中篇)14.VBA与Excel入门系列-14-正则表达式(下篇)15.VBA与Excel入门系列-15-数组(上篇)16.VBA与Excel入门系列-16-数组(中篇)17.VBA与Excel入门系列-17-数组(下篇)18.VBA与Excel入门系列-18-事件提醒系统(上篇)19.VBA与Excel入门系列-19-事件提醒系统(中篇)20.VBA与Excel入门系列-20-事件提醒系统(下篇)21.VBA与Excel入门系列-21-警告及报错22.VBA与Excel入门系列-22-VBA中的事件(上篇)23.VBA与Excel入门系列-23-VBA中的事件(下篇)VBA-常用功能1.VBA-常用函数集锦-1-文件夹操作2.VBA-常用函数集锦-2-Excel文件的操作3.VBA-常用函数集锦-3-文本文件的操作(上篇)4.VBA-常用函数集锦-4-文本文件的操作(中篇)5.VBA-常用函数集锦-5-文本文件的操作(下篇)6.VBA-常用函数集锦-6-打开文件窗口(上篇)7.VBA-常用函数集锦-7-打开文件窗口(下篇)8.VBA-常用函数集锦-8-自动生成工作表9.VBA-常用函数集锦-9-字符串是否含有特定字符10.VBA-常用函数集锦-10-时间拆分11.VBA-常用函数集锦-11-单元格常用格式设置(上篇)12.VBA-常用函数集锦-12-单元格常用格式设置(下篇)13.VBA-常用函数集锦-13-Excel多行或多列删除VBA-实例造轮子系列1.VBA/Excel-实例系列-01-工作簿目录生成2.VBA/Excel-实例系列-02-根据时间自动判断周次信息3.VBA/Excel-实例系列-03-点分组(上篇)4.VBA/Excel-实例系列-03-点分组(中篇)5.VBA/Excel-实例系列-03-点分组(下篇)6.VBA/Excel-实例系列-04-求两个数组的交集7.VBA/Excel-实例系列-05-数组获取对应集合8.VBA/Excel-实例系列-06-求两个数组的差集9.VBA/Excel-实例系列-07-并集10.VBA/Excel-实例系列-08-奇偶判断11.VBA/Excel-实例系列-09-重复值查找12.VBA/Excel-实例系列-10-连续整数判断VBA-小技巧1.VBA/Excel-小技巧-01-创建快捷键VBA-图表1.(设置图表数据源)【简单学】图表变变变2.(超出上下限特殊标记)标红超重老司机的正确姿势3.(设置Y轴上下限)请在你的excel图表里给我最合适的爱4.(股价图)一位股市大佬的Excel图表修养5.(瀑布图)活在Excel图表里的拆迁大队6.(单元格内插入图表)VBA与Excel进阶系列-01-图表(上篇)7.(折线图标记线设置)VBA与Excel进阶系列-02-图表(中篇)8.(柱状图设置)VBA与Excel进阶系列-03-图表(下篇)VBA-时间与日期1.(已知今天,求昨天是几号)忘记大小月和平润年,VBA也可以帮你找回昨天2.(format周次表示,第一周的不同表示)纵然白驹过隙,excel依旧记得你拼命过的工作周3.(时间计算实例)按有效工作时长计算工资,老板你太狠了吧?吃饭时间不算吗4.(DatePart两种周次求解)关于周次的那些事,你知道吗5.(获取年月日时分秒)VBA-常用函数集锦-10-时间拆分6.时间信息怎么展示?你的Excel你做主7.时间表示 - 求解8.时间表示 - 解惑VBA-字典1.(是否存在Exists)VBA送你的字典请查收2.(字典键唯一性)VBA说重复的信息我不要!3.(求差集)多的是,你不知道VBA中查缺补漏的姿势VBA-数组1.Excel-VBA-数组-01-定义数组2.Excel-VBA-数组-02-数组遍历3.Excel-VBA-数组-03-数组与Excel单元格间的读写4.Excel-VBA-数组-04-数组的增减5.Excel-VBA-数组-05-数组清空VBA-正则表达式1.(Replace)VBA与Excel入门系列-12-正则表达式(上篇)2.(常用Pattern)VBA与Excel入门系列-13-正则表达式(中篇)3.(Test / Execute)VBA与Excel入门系列-14-正则表达式(下篇)4.(正则/数据有效性)VBA-以拼音查找满足条件的姓名VBA-文件及文件夹操作1.(创建fso/文件夹删除/新建)VBA与Excel入门系列-08-FSO (上篇)2.(文本文件的打开/新建/删除/写入)VBA与Excel入门系列-09-FSO(下篇)3.VBA-常用函数集锦-1-文件夹操作4.VBA-常用函数集锦-3-文本文件的操作(上篇)5.VBA-常用函数集锦-4-文本文件的操作(中篇)6.VBA-常用函数集锦-5-文本文件的操作(下篇)VBA-工作表美化1.【简单学】整页工作表中所有字体设置,中外文设置不同字体,你是哪种青年2.(字体/对齐/边框)VBA-常用函数集锦-11-单元格常用格式设置(上篇)3.(行高/列宽/填充色/自动换行)VBA-常用函数集锦-12-单元格常用格式设置(下篇)VBA-查找1.(遍历查找For循环)查找满足条件的n个结果2.查找-VLookup3.查找-Match4.来,打个配合-Match与IndexVBA-邮件发送1.(收件人/主题/内容)邮件自动分发-01-简单邮件2.邮件自动分发-02-含有两个附件3.邮件自动分发-03-五彩缤纷的邮件正文4.邮件自动分发-04-邮件正文带图片5.邮件自动分发-05-邮件重要等级设置6.邮件自动分发-06-邮件正文html-网址超链接7.邮件自动分发-07-会议邀请8.邮件自动分发-08-带附件的会议邀请VBA-窗体1.VBA与Excel入门系列-24-用户窗体(上篇)2.VBA与Excel入门系列-25-用户窗体(中篇)3.窗体-01-进度条4.Excel-窗体项目-学习成绩查询-01-项目简介5.Excel-窗体项目-学习成绩查询-02-界面绘制6.Excel-窗体项目-学习成绩查询-03-成绩录入界面控件设置7.Excel-窗体项目-学习成绩查询-04-录入成绩8.Excel-窗体项目-学习成绩查询-05-单条件查询成绩9.Excel-窗体项目-学习成绩查询-06-多条件查询成绩10.Excel-窗体项目-学习成绩查询-07-多条件查询之ListView11.Excel-窗体项目-学习成绩查询-08-ListView多列及对齐方式12.Excel-窗体项目-学习成绩查询-09-ListView排序及格式化显示13.Excel-窗体项目-学习成绩查询-10-ListView选中行信息14.Excel-窗体项目-学习成绩查询-11-只显示窗体算法挑战1.Excel-VBA-算法挑战-012.Excel-VBA-算法挑战-023.Excel-VBA-算法挑战-03-偶数个数VBA-其它1.VBA/Excel-网页操作-012.对不起,我们还是分开吧3.(用户名获取username)不能说的秘密就放在excel里吧4.真·VBA秒算·统计学信息5.(Resize和数组快速初始化)辛辛苦苦几十年,vba帮你回到解放前6.(问题单插入图片)VBA插入图片了解一下7.(参数按值,按地址传递)原来你是这样的过程,恕我愚昧这么久8.(字典的传递,按地址?)原来你是这样的过程,恕我愚昧这么久 - 续集。
VisualBasic 6.0控件查询手册

Visual Basic 6.0 控件查询手册
龙马工作室搜集整理制作
1
ห้องสมุดไป่ตู้
Visual Basic从入门到精通
索引
标准控件
CheckBox 控件 ------------------------------------------------------------------------------------------- 4 ComboBox 控件 ------------------------------------------------------------------------------------------ 4 CommandButton 控件 ----------------------------------------------------------------------------------- 5 Data 控件 -------------------------------------------------------------------------------------------------- 5 DirListBox 控件 ------------------------------------------------------------------------------------------ 8 DriveListBox 控件 --------------------------------------------------------------------------------------- 8 FileListBox 控件------------------------------------------------------------------------------------------ 9 Frame 控件 ------------------------------------------------------------------------------------------------ 9 HScrollBar、VScrollBar 控件-------------------------------------------------------------------------- 9 Image 控件 ----------------------------------------------------------------------------------------------- 10 Label 控件 ------------------------------------------------------------------------------------------------ 10 Line 控件 ------------------------------------------------------------------------------------------------- 11 ListBox 控件 --------------------------------------------------------------------------------------------- 11 Menu 控件 ------------------------------------------------------------------------------------------------ 12 OptionButton 控件 -------------------------------------------------------------------------------------- 12 PictureBox 控件 ----------------------------------------------------------------------------------------- 13 Shape 控件------------------------------------------------------------------------------------------------ 13 TextBox 控件--------------------------------------------------------------------------------------------- 14 Timer 控件------------------------------------------------------------------------------------------------ 14
自学VBA,内置函数和查询方式

自学VBA,内置函数和查询方式
合理使用函数不但可以节省处理数据的时间,提高工作效率还可以降低编程的难度,减少编写代码的工作量。
不至于自己重新编写一个函数就可以实现的代码。
VBA作为一种编程语言,也有自己的VBA函数。
VBA的内置函数和Excel函数很类似,如果你知道Excel的函数,一般在使用VBA的内置函数的时候也会一目了然,Excel的函数名称和VBA内置函数名称一般都是相同的名字,只是使用语法是 VBA.函数的名字()。
VBA中有哪些函数
VBA所有的函数都可以在帮助中查找到,如下图:
可以看到所有VBA的函数,也可以在下面看到函数的参数和参数
使用说明。
VBA各对象的属性、方法查询集

当前完整路径的工作簿名
ThisWorkbook.FullName
本工作簿的基本名称
Left(, InStr(, ".") - 1)
工作簿路径
Workbooks("工作簿").Path
Excel窗口位置
Application.Height Application.Width Application.Left
Application.Top
在主窗口中所能占有的最大高度和宽度 ableHeight ableWidth
隐藏显示Excel
启动微软的应用程序
Application.ActivateMicrosoftApp x x为: xlMicrosoftWord xlMicrosoftPowerPoint xlMicrosoftMail xlMicrosoftAccess xlMicrosoftFoxPro xlMicrosoftProject xlMicrosoftSchedulePlus
当前活动工作簿的路径
ActiveWorkbook.Path ThisWorkbook.Path
新建工作簿
Workbooks.Add
打开工作簿
WoБайду номын сангаасkbooks.Open Filename:="路径",UpdateLinks:=x x为: 0 1 2 3
打开工作簿(窗口选择)
Workbooks.Open Filename:=Application.GetOpenFilename("Excel工作簿(*.xls),*.xls")
Application.Run "宏名"
VBA语言速查手册

V B A语言基础简介(VisualBasicApplication)这里只做一些vba最基本的介绍,很多函数,过程的具体使用不可能一一说明,同学们参考vba函数速查手册第一节标识符一.定义标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。
二.命名规则1)字母打头,由字母、数字和下划线组成,如A987b_23Abc2)字符长度小于403)不能与VB保留字重名,如public,private,dim,goto,next,with,integer,single等第二节运算符定义:运算符是代表VB某种运算功能的符号。
1)赋值运算符=2)数学运算符&、+(字符连接符)、+(加)、-(减)、Mod(取余)、\(整除)、*(乘)、/(除)、-(负号)、^(指数)3)逻辑运算符Not(非)、And(与)、Or(或)、Xor(异或)、Eqv(相等)、Imp(隐含)4)关系运算符=(相同)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like、Is5)位运算符(暂时可不看位运算)Not(逻辑非)、And(逻辑与)、Or(逻辑或)、Xor(逻辑异或)、Eqv(逻辑等)、Imp(隐含)第三节数据类型VBA共有12种数据类型,具体见下表,此外用户还可以根据以下类型用Type 自定义数据类型。
第四节变量与常量1)VBA允许使用未定义的变量,默认是变体变量。
2)在模块通用说明部份,加入OptionExplicit语句可以强迫用户进行变量定义。
3)变量定义语句及变量作用域Dim变量as类型'定义为局部变量,如Dim xyzasintegerPrivate变量as类型'定义为私有变量,如Private xyzasbytePublic变量as类型'定义为公有变量,如Public xyzassingleGlobal变量as类型'定义为全局变量,如Globlal xyzasdateStatic变量as类型'定义为静态变量,如Static xyzasdouble一般变量作用域的原则是,那部份定义就在那部份起作用,模块中定义则在该模块那作用。
VBA中的快速索引与查找技巧

VBA中的快速索引与查找技巧在VBA编程中,快速索引和查找技巧是提高代码效率和准确性的关键。
索引和查找在处理大量数据和需要快速找到特定值或位置的情况下特别有用。
本文将介绍一些可以帮助您在VBA中实现快速索引和查找的技巧和方法。
1. 使用Range对象进行索引和查找在VBA中,Range对象是最常用的用于操作Excel工作表的对象之一。
要在VBA中进行索引和查找,您可以使用Range对象的Find方法。
Find方法允许您在指定的范围内查找指定的值,并返回查找到的第一个匹配项。
例如,如果您要在Excel工作表中查找包含特定文本的单元格,您可以使用以下代码:```Dim rng As RangeDim searchValue As StringDim foundCell As RangesearchValue = "关键词" '要查找的文本Set rng = Worksheets("Sheet1").UsedRange '设置要搜索的范围为工作表上已使用的区域Set foundCell = rng.Find(What:=searchValue,LookIn:=xlValues, LookAt:=xlWhole) '进行查找If Not foundCell Is Nothing Then'找到匹配项MsgBox "找到匹配项:" & foundCell.AddressElse'未找到匹配项MsgBox "未找到匹配项"End If```通过使用Find方法,您可以轻松地在Excel工作表中查找特定的值,并对找到的结果进行进一步操作。
2. 使用Dictionary对象进行索引和查找Dictionary对象是VBA中非常有用的一个集合对象,它允许您使用键值对的方式存储和访问数据。
通过将数据存储在Dictionary对象中,您可以通过键(Key)快速查找和访问相应的值。
VB_速查手册

标准控制的使用技巧改变 ListIndex而不发生 Click 事件在修改 Combo 或 Listview 的ListIndex 时,会发生 Click 事件,下面的函数可以阻止该事件。
声明:Private Declare Function SendMessage Lib _"user32" Alias "SendMessageA" (ByVal _hWnd As Long, ByVal wMsg As Long, ByVal _wParam As Long, lParam As Any) As LongConst CB_GETCURSEL = &H147Const CB_SETCURSEL = &H14EConst LB_SETCURSEL = &H186Const LB_GETCURSEL = &H188函数:Public Function SetListIndex(lst As Control, _ByVal NewIndex As Long) As LongIf TypeOf lst Is ListBox ThenCall SendMessage(lst.hWnd, _LB_SETCURSEL, NewIndex, 0&)SetListIndex = SendMessage(lst.hWnd, _LB_GETCURSEL, NewIndex, 0&)ElseIf TypeOf lst Is ComboBox ThenCall SendMessage(lst.hWnd, _CB_SETCURSEL, NewIndex, 0&)SetListIndex = SendMessage(lst.hWnd, _CB_GETCURSEL, NewIndex, 0&)End IfEnd Function调整 Combo 下拉部分的宽度声明:Private Declare Function SendMessage Lib _"USER32" Alias "SendMessageA" _(ByVal hwnd As Long, ByV al Msg As Long, _ByVal wParam As Long, ByV al lParam As Long) As LongPrivate Const CB_GETDROPPEDWIDTH = &H15FPrivate Const CB_SETDROPPEDWIDTH = &H160Private Const CB_ERR = -1函数:' 取得 Combo 下拉的宽度' 可以利用该函数比例放大或缩小宽度Public Function GetDropdownWidth(cboHwnd As Long) As Long Dim lRetVal As LonglRetVal = SendMessage(cboHwnd, CB_GETDROPPEDWIDTH, 0, 0) If lRetVal <> CB_ERR ThenGetDropdownWidth = lRetVal'单位为 pixelsElseGetDropdownWidth = 0End IfEnd Function'设置 Combo 下拉的宽度'单位为 pixelsPublic Function SetDropdownWidth(cboHwnd As _Long, NewWidthPixel As Long) As BooleanDim lRetVal As LonglRetVal = SendMessage(cboHwnd, _CB_SETDROPPEDWIDTH, NewWidthPixel, 0)If lRetVal <> CB_ERR ThenSetDropdownWidth = TrueElseSetDropdownWidth = FalseEnd IfEnd FunctionCombo的自动查询技术Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPublic Const CB_FINDSTRING = &H14CPrivate Sub Combo1_Change()Dim iStart As IntegerDim sString As StringStatic iLeftOff As IntegeriStart = 1iStart = Combo1.SelStartIf iLeftOff <> 0 ThenCombo1.SelStart = iLeftOffiStart = iLeftOffEnd IfsString = CStr(Left(Combo1.Text, iStart))Combo1.ListIndex = SendMessage(Combo1.hwnd, _ B_FINDSTRING, -1, ByVal CStr(Left( _ombo1.Text, iStart)))If Combo1.ListIndex = -1 TheniLeftOff = Len(sString)combo1.Text = sStringEnd IfCombo1.SelStart = iStartiLeftOff = 0End Sub静态变量 iLeftOff 指定了字符长度。
excelvba编程速查宝典

excelvba编程速查宝典一、Excel VBA简介与用途Excel VBA(Visual Basic for Applications)是一种为Microsoft Office 应用程序(如Excel)提供的编程语言。
通过VBA,用户可以自定义Excel的功能,实现自动化操作,提高工作效率。
VBA编程在企业级应用中尤为常用,可以帮助用户轻松实现复杂的业务逻辑和数据分析。
二、编写Excel VBA程序的基本步骤1.打开Excel,并创建一个新的工作簿。
2.按下Alt + F11键,打开VBA编辑器。
3.点击“插入”菜单,选择“模块”按钮,创建一个新的模块。
4.在模块中编写VBA代码。
5.按下F5键,运行程序。
根据需要调整代码,直至实现预期功能。
三、VBA编程基础3.1 变量与数据类型在VBA中,变量需先声明后使用。
常见的数据类型有:Integer(整数)、Long(长整数)、Single(单精度浮点数)、Double(双精度浮点数)、String (字符串)等。
3.2 常用内部函数VBA提供了丰富的内部函数,如:SUM(求和)、AVERAGE(平均值)、IF(条件判断)等。
3.3 控制结构VBA的控制结构包括:顺序结构、分支结构(If...Then...Else)、循环结构(For...Next、While...Wend等)。
3.4 循环与条件语句循环语句用于重复执行一段代码,如:For...Next、While...Wend等。
条件语句用于根据条件执行不同的代码块,如:If...Then...Else。
四、Excel对象模型与组件4.1 工作簿对象:代表整个Excel文件,包含工作表、图表等组件。
4.2 工作表对象:代表Excel文件中的一个工作表,包含单元格、行、列等对象。
4.3 单元格对象:工作表中的基本单元,用于存储数据和执行公式。
五、常用Excel VBA编程实例5.1 自动填充功能:使用ADDRESS和INDEX函数实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VBA语言基础简介(Visual Basic Application)这里只做一些vba最基本的介绍,很多函数,过程的具体使用不可能一一说明,同学们参考vba函数速查手册第一节标识符一.定义标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。
二.命名规则1)字母打头,由字母、数字和下划线组成,如 A987b_23Abc 2)字符长度小于403)不能与VB保留字重名,如public, private, dim, goto, next, with, integer, single等第二节运算符定义:运算符是代表VB某种运算功能的符号。
1)赋值运算符=2)数学运算符&、+ (字符连接符)、+(加)、-(减)、Mod(取余)、\(整除)、*(乘)、/(除)、-(负号)、^(指数)3)逻辑运算符Not(非)、And(与)、Or(或)、Xor(异或)、Eqv (相等)、Imp(隐含)4)关系运算符 = (相同)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like、Is5)位运算符(暂时可不看位运算)Not(逻辑非)、And(逻辑与)、Or(逻辑或)、Xor(逻辑异或)、Eqv(逻辑等)、Imp(隐含)第三节数据类型VBA共有12种数据类型,具体见下表,此外用户还可以根据以下类型用Type自定义数据类型。
第四节变量与常量1)VBA允许使用未定义的变量,默认是变体变量。
2)在模块通用说明部份,加入 Option Explicit 语句可以强迫用户进行变量定义。
3)变量定义语句及变量作用域Dim变量as类型 '定义为局部变量,如 Dim xyz as integerPrivate变量as类型 '定义为私有变量,如 Private xyz as bytePublic变量as类型 '定义为公有变量,如 Public xyz as singleGlobal变量as类型 '定义为全局变量,如 Globlal xyz as dateStatic变量as类型 '定义为静态变量,如 Static xyz as double一般变量作用域的原则是,那部份定义就在那部份起作用,模块中定义则在该模块那作用。
4)常量为变量的一种特例,用Const定义,且定义时赋值,程序中不能改变值,作用域也如同变量作用域。
如下定义:Const Pi=3.1415926 as single第五节数组数组是包含相同数据类型的一组变量的集合,对数组中的单个变量引用通过数组索引下标进行。
在内存中表现为一个连续的内存块,必须用Global或Dim语句来定义。
定义规则如下:Dim 数组名([lower to ]upper [, [lower to ]upper, ….]) as type ;Lower缺省值为0。
二维数组是按行列排列,如Dim X(9) as String声明了一个10个元素的数组,X(0)~X(9),如果没有指定lower,则默认lower=0。
再例如Dim MyArray(10, 10) As Integer,是个11*11整数数组除了以上固定数组外,VBA还有一种功能强大的动态数组,定义时无大小维数声明;在程序中再利用Redim语句来重新改变数组大小,原来数组内容可以通过加preserve关键字来保留。
如下例:Dim array1() as double : Redim array1(5) : array1(3)=250 : Redim preserve array1(5,10)第六节注释和赋值语句1)注释语句是用来说明程序中某些语句的功能和作用,注释语句不会被执行;VBA中有两种方法标识为注释语句。
单引号’;如:’定义全局变量;可以位于别的语句之尾,也可单独一行Rem;如:Rem定义全局变量;只能单独一行2)赋值语句是进行对变量或对象属性赋值的语句,采用赋值号=,如X=123:Form1.caption=”我的窗口”对对象的赋值采用:set myobject=object 或 myobject:=object第七节书写规范1)VBA不区分标识符的字母大小写,一律认为是小写字母;2)最好以行只写一条语句。
一行可以书写多条语句,各语句之间以冒号: 分开;3)一条语句可以多行书写,以空格加下划线 _来标识下行为续行;4)标识符最好能简洁明了,不造成歧义。
第八节判断语句1)If…Then…Else语句If condition Then [statements][Else elsestatements] condition 是个判断条件,当condition为真True,就执行Then后面的statements那些语句,如果为假False,执行elsestatements 语句如1:If A>B And C<D Then A=B+2 Else A=C+2如2:If x>250 Then x=x-100或者,可以使用块形式的语法,即If…Then…Else语句可以嵌套:If condition Then[statements][ElseIf condition-n Then[elseifstatements] ...[Else[elsestatements]]End If如1:If Number < 10 ThenDigits = 1ElseIf Number < 100 ThenDigits = 2ElseDigits = 3End If2)Select Case…Case…End Case语句如1:Pid的取值来决定执行不同的语句Select Case PidCase“A101”Price=200 ‘当Pid的实际值是“A101”,就执行Price=200.后面的以此类推Case“A102”Price=300……Case ElsePrice=900End Case第九节循环语句1)For Next语句以指定次数来重复执行一组语句For counter = start To end [Step step] ' step 缺省值为1[statements][Exit For][statements]Next [counter]如1:for语句也可以嵌套,如下,两重for循环For Words = 10 To 1 Step -1 ' 建立 10 次循环 For Chars = 0 To 9 ' 建立 10 次循环MyString = MyString & Chars ' 将数字添加到字符串中Next Chars ' Increment counterMyString = MyString & " " ' 添加一个空格Next Words2)For Each…Next语句主要功能是对一个数组或集合对象进行,让所有元素重复执行一次语句其作用就是遍历一遍数组或集合对象中的所有元素For Each element In group ‘group 必要参数。
对象集合或数组的名称(用户定义类型的数组除外)。
Statements[Exit for]StatementsNext [element]如1:For Each rang2 In range1With range2.interior.colorindex=6.pattern=xlSolidEnd withNext这上面一例中用到了With…End With语句,目的是省去对象多次调用,加快速度;语法为:With object[statements]End With3)Do…loop语句在条件为true时,重复执行区块命令Do {while |until} condition ' while 为当型循环,until为直到型循环,顾名思义,不多说啦StatementsExit doStatementsLoop或者使用下面语法Do ' 先do 再判断,即不论如何先干一次再说StatementsExit doStatementsLoop {while |until} condition4)while…wend语句,只要条件为TRUE,循环就执行如下例:while condition‘while I<50 [statements] ‘I=I+1wend第十节其他类语句和错误语句处理这节可以省略,感兴趣的话可以看看一.其他循环语句结构化程序使用以上判断和循环语句已经足够,建议不要轻易使用下面的语句,虽然VBA还支持。
1)Goto line 该语句为跳转到line语句行2)On expression gosub destinatioinlist 或者 on expressiongoto destinationlist 语句为根据 exprssion表达式值来跳转到所要的行号或行标记3)Gosub line…line…Return语句,Return返回到Gosub line行,如下例:Sub gosubtry()Dim numNum=inputbox(“输入一个数字,此值将会被判断循环”)If num>0 then Gosub Routine1 :Debug.print num:Exit sub Routine1:Num=num/5ReturnEnd sub‘Wend二.错误语句处理执行阶段有时会有错误的情况发生,利用On Error语句来处理错误,启动一个错误的处理程序。
语法如下:On Error Goto Line‘当错误发生时,会立刻转移到line行去On Error Resume Next‘当错误发生时,会立刻转移到发生错误的下一行去On Erro Goto 0‘当错误发生时,会立刻停止过程中任何错误处理过程第十一节过程和函数过程是构成程序的一个模块,往往用来完成一个相对独立的功能。
过程可以使程序更清晰、更具结构性。
VBA具有四种过程:Sub 过程、Function函数、Property属性过程和Event事件过程。
一.Sub过程Sub 过程的参数有两种传递方式:按值传递(ByVal)和按地址传递(ByRef)。
如下例:Sub password (ByVal x as integer, ByRef y as integer) If y=100 then y=x+y else y=x-yx=x+100End subSub call_password ()Dim x1 as integerDim y1 as integerx1=12y1=100Call password (x1,y1) ‘调用过程方式:1. Call过程名(参数1, 参数2…) ; 2. 过程名参数1, 参数2…debug.print x1,y1 ‘结果是12、112,y1按地址传递改变了值,而x1按值传递,未改变原值End sub二.Function函数函数实际是实现一种映射,它通过一定的映射规则,完成运算并返回结果。