导图社区 VBA基础
这是一个关于VBA基础的思维导图。它全面覆盖了VBA编程语言的入门知识,包括变量与数据类型、控制结构、函数与过程、以及Excel等Office应用的自动化编程实例。
编辑于2024-08-28 17:06:01VBA
语法
application
workbook
worksheet
range
chart
shape
office对象
vba project reference工程引用
vba开发工具
语法
数据类型
string字符串
数值型
Byte
Integer
Single
Double
日期时间型
货币型:Currency
布尔型
变体型
枚举型
对象型:object
集合对象
个体对象
数据类型的判断
数组
数组类型
一维数组
二维数组
对象数组
variant:变体数组
array( ):创建数组
UBound、LBound:数组最大、最小下标
erase:擦除数组全部元素
redim和redim preserve:初始化/数组重定义
数组遍历
动态数组:重定义数组的上标
数组排序方法
冒泡排序
选择排序
字典dictionnary
Property
Key
Item
Keys
Items
Count
CompareMode
Method
Add
Exists
Remove
RemoveAll
变量
作用域
static静态变量
表达式与运算符
算术运算符
like运算符
逻辑运算符
比较运算符
条件选择结构
if---else---
iif(表达式,True result,False result)
select case ---end select
choose(序号,参数1,参数2)
switch(条件1,结果1,条件2,结果2)
循环结构
for---,next ---
for each---on ---,next---
do---loop
while---wend
流程跳转语句
goto:跳转语句
go sub---return---:跳转后再返回
exit:退出语句块
end:终止执行
错误处理
错误类型
编译错误(语法错误)
运行错误:赋值不符、超出下标
逻辑错误:
err对象
resume和resume next
VBA内置函数
string类:字符串函数
string、space:生成
instr:查找
Like:匹配
mid、left、right:提取
Len:计算字符长度
转换:StrConv、UCase、LCase
split:拆分
Trim、Ltrim、Rtrim:删除空格
join:合并
filter:筛选
datetime类:日期时间函数
当前日期时间:date、time、now、
日期时间单位:year、month、day、hour、minute、second
Timer:当前时间转换为秒数,用于计算程序运行时间
DateSerial、TimeSerial:日期时间的生成
datevalue、timevalue:字符串(文本型日期)转为日期时间
DateAdd():日期时间的加减运算
DateDiff():计算日期的间隔
DatePart(): 日期、时间的分解
FileSystem类 (和FSO不同,无须引用对象库)
Dir:返回文件名、文件夹名
CurDir:当前目录
ChDir:改变目录
ChDrive:改变磁盘
MkDir:创建文件夹
RmDir:移除文件夹
FileCopy:复制文件
name---as---:重命名或移动文件
Filelen:文件大小
kill:删除文件
FreeFile:可以使用的自由文件号
open "filepath" for output / input as "FreeFile" '打开somefile文件,设置文件号:freefile。 close “FreeFile” '关闭"FreeFile"文件号的文件
interaction类:交互类函数
vba.Msgbox:文本消息框
vba.Inputbox:文本输入框
Sendkeys:发送按键、字符串
Call:调用其它过程、函数
Shell:启动应用程序,返回进程ID
CreateObject:创建对象
GetObject:获取运行中的对象
AppActivate '激活指定标题或进程ID的窗口
设置注册表
information类:数据类型判断
lsArray:判断是否为数组
lsDate:判断是否为日期、时间
lsEmpty:判断是否为空,或初始化
lsError:判断是否为错误值
lsMissing:检查是否已将可选参数传递到用户定义的过程
IsNull:判断是否为无效数据
IsNumeric:判断是否为数字
IsObject:判断是否为对象
math类:数学和三角函数
abs:绝对值
int:取整函数
rnd:随机函数
mod:余数函数
sqr:算术平方根
三角函数
conversion:数据类型转换
Format:格式转换
Asc:将字符串中的第一个字母,转换成对应的字符代码
Chr:把数字(字符串代码),转换成字符串。
Str:将数字转换为字符串。
val:返回字符串中包含的数字。
CVErr:转化为错误值
函数名 返回类型 表达式参数的范围 CBool Boolean 任何有效的“字符串”或数值型表达式。 CByte Byte 0 到 255. CCur Currency -922,337,203,685,477.5808 到 922,337,203,685,477.5807。 CDate Date 任何有效的日期表达式。 CDbl Double 负值为 -1.79769313486231E308 到 -4.94065645841247E-324;正值为 4.94065645841247E-324 到 1.79769313486232E308。 CDec Decimal 零缩放数(即数字中没有小数位)为 79,228,162,514,264,337,593,543,950,335。 有 28 个小数位的数字的范围为 7.9228162514264337593543950335。 最小的非零数字为 0.0000000000000000000000000001。 CInt Integer -32,768 到 32,767;分数四舍五入。 CLng Long -2,147,483,648 到 2,147,483,647;分数四舍五入。 CLngLng LongLong -9,223,372,036,854,775,808 至 9,223,372,036,854,775,807,分数四舍五入。 (仅在 64 位平台上有效。) CLngPtr LongPtr 32 位系统上为 -2,147,483,648 到 2,147,483,647,64 位系统上为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807;32 位系统和 64 位系统分数都四舍五入。 CSng Single 负值为 -3.402823E38 到 -1.401298E-45;正值为 1.401298E-45 到 3.402823E38。 CStr String CStr 的返回值取决于 expression 参数。 请参阅下表。 CVar Variant 和“Double”针对数值型的范围相同。 和“字符串”针对非数值型的范围相同。
API函数
子主题
子主题
子主题
子主题
工作表函数
子主题
子主题
子主题
子主题
range
object对象
Range
Cells
ActiveCell
Rows:工作表或range所有行的集合
columns:工作表或range所有列的集合
End:定位到边界
Offset:偏移
ReSize:重置区域大小
EntireRow
EntireColumn
CurrentRegion:当前区域
Activesheet.UsedRange:已使用区域
Application.Selection:已选择区域/对象
Application.Union:创建range合集
Application.Intersect:创建range交集
子对象
borders:单元格边框
Characters:单元格字符
Font:
Interior:填充色
FormatConditions:条件格式
Validation:数据有效性
Comment:批注
Hyperlinks:超链接
property属性
Value:值
Adress:单元格地址
Value2:日期的数字格式(数字值)
Text:显示内容
Row:行号
Column:列号(数字)
Count:单元格数量、行数、列数统计
Format:格式,等同于excel的text函数
NumberFormat:单元格格式
Areas:分离的range区域集合
RowHeight:行高
ColumnWidth:列宽
对齐方式
HorizonalAlignment:水平对齐方式
VerticalAlignment:垂直对齐方式
formula:公式
单元格区域
大小
Width:宽度,Height:高度
位置
Left:至左距离,Top:至顶距离
method方法
Select:选择
Activate:
Merge:合并单元格
Copy
Paste
PasteSpecial(Paste,Operation,SkipBlanks,Transpose): 选择性粘贴
paste参数:
xlPasteAll:粘贴所有
xlPasteValues:粘贴值
xlPasteFormats:粘贴格式
xlPasteFormulas:粘贴公式
xlPasteColumnWidths:列宽
xlPasteValuesAndNumberFormats:值和数字格式
xlPasteFormulasAndNumberFormats:公式和数字格式
xlPasteValidation:数据验证
Operation参数:
xlPasteSpecialOperationNone:无
xlPasteSpecialOperationAdd:加
xlPasteSpecialOperationSubtract:减
xlPasteSpecialOperationMultiply:乘
xlPasteSpecialOperationDivide:除
SkipBlanks:是否跳过空单元格
Transpose:是否转置
Insert:插入、
Delete:删除
Clear:清除所有内容
ClearContents:清除值
ClearFomats:清除格式
ClearComments:清除批注
ClearHyperLinks:清除超链接
AutoFit:自动调整行高或列宽
AutoFill:填充
FillLeft:向左填充
FillRight:向右填充
FillUp:向上填充
FillDown:向下填充
AutoFilter:筛选
Sort
RemoveDuplicate:去除单元格重复值
Find (What,[After],[LookIn],[LookAt],[SearchOrder],[SearchDirection],[MatchCase],[MatchByte],[SearchFormat])
What:查找的内容(可用通配符)
Lookin:查找类型
xlValues:值
xlFormulas:公式
xlComment:批注
Lookat:单元格匹配
xlwhole:整个单元格
xPart:部分内容
SearchOrder:查找次序
xlbyrows:按行
xlbycolumns:按列
SearchDirection:查找方向
xlprevious:向前
xlnext:向后
MatchCase:是否区分大小写
true:是
false:否
MatchByte:全角半角
true:是
false:否
SearchFormat:单元格查找格式 (须在前面注明查找格式findformat)
true:是
false:否
FindNext:查找下一个(须先使用Find)
FindFormat:按格式查找
Replace:替换(常规)
ReplaceFormat:按格式替换(必须和 Find 或 FindFormat 搭配使用)
Search:字符串查找
SpcialCells(Type, Value):定位
XlCellType:单元格内容类型
xCellTypeVisible:可见单元格
xlCellTypeBlanks:空单元格
xlCellTypeSameFormatConditions:含有相同格式的单元格
xlCellTypeFormulas:含有公式的单元格
xlCellTypeLastCell:已用区域中的最后一个单元格
xlCellTypeAllFormatConditions:任意格式单元格
XlSpecialCellsValue:单元格值类型
xlErrors:错误值
xlLogical:逻辑值
xlNumbers:数字
xlTextValues:文本
TexttoColumns:文本分列
worksheet
Property:
name:工作表名称
codename:工作表代码名称
Worksheet.Previous:前一个工作表
Worksheet.Next:后一个工作表
Visible:显示属性
tab
color:工作表标签颜色
colorindex:工作表标签颜色色号
PageSetup:页面打印设置
纸张设置
大小
方向
页面
页边距
页眉、页脚、页码
页面对齐方式
重复标题
打印
打印区域
打印页数范围
双面打印
打印份数
Method:
Activate:激活工作表
Select:选择工作表
worksheet. copy 和 Worksheet. Move :工作表的复制、移动
worksheets. copy 和 Worksheets. Paste:数据复制和粘贴
Worksheets. Protect:工作表的保护
Protect:保护
Printout:打印
Calculate:工作表的重新计算(重新计算有公式的区域)
event:
SelectionChange:选择区域变更事件
Change:工作表修改事件
BeforeRightClick:右击事件
自定义右键菜单
workbook
对象
Thisworkbook:代码所在工作簿
Activeworkbook:活动工作簿
子主题
子主题
property
Name:
Path:
Fullname:
Saved:true:保存,false:不保存
Workbook.Windows:工作簿窗口集合
FreezePanes:冻结单元格,先select单元格或行/列,再FreezePanes=true
子主题
method
Add:新增
Open:打开
Activate:激活
OpenText:以文本打开
Save:保存
SaveAs:另存为
Close:关闭
SaveChanges:保存更改
Protect Password:
事件
打开和关闭事件
工作表激活事件
SheetBeforeRightClick:工作表右击事件
SheetChange:工作表修改事件
SheetSelectionChange:工作表选择区域修改事件
application
对象
activeworkbook
activesheet
activecell
activewindow
worksheetfunction
Dialogs 对话框
各种类型的对话框
属性
count
Item
Creator
parent
property:属性
DefaultFilePath:默认存储路径
Name、Fullname、Path:
Saved:
FreezePanes:冻结单元格
Windows:
WindowState:窗口状态
RecentFile:最近打开的文件
Hwnd:窗口句柄
Caption:窗口标题
EnableEvents:是/否启用事件
Calculation:设置重新计算模式
方法
Application.inputbox:excel输入框(可以输入文本,单元格对象)
SendKeys:发送模拟按键指令
Delay:延迟
Run:运行其它过程、函数
Quit:退出
Undo:撤销
OnTime:定时运行
Calculate:重新计算(有公式的情况下)
CheckSpelling:英文单词拼写检查
Volatile:将自定义函数标记为易失性(自动刷新)函数,实现自动更新函数计算结果
事件
SheetActivate:工作表激活时引发的事件
SheetBeforeDelete:工作表删除之前引发的事件
SheetBeforeDoubleClick:双击工作表单元格区域时引发的事件
SheetBeforeRightClick:右击工作表单元格区域时引发的事件
SheetChange:工作表内容发生更改时引发的事件
SheetDeactivate:工作表失去焦点时引发的事件
SheetSelectionChange:工作表选定区域发生变化时引发的事件
NewWorkbook:新建工作簿时引发的事件
WorkbookOpen:工作簿打开时引发的事件
WorkbookActivate:激活工作簿时引发的事件
WorkbookAddinInstall:加载宏被加载时引发的事件
WorkbookAddinUninstall:加载宏被卸载时引发的事件
WorkbookAfterSave:工作簿保存后引发的事件
WorkbookBeforeClose:工作簿关闭前引发的事件
WorkbookBeforePrint:工作簿打印前引发的事件
WorkbookBeforeSave:工作簿保存前引发的事件
WorkbookDeactivate:工作簿失去焦点时引发的事件
WorkbookNewSheet:工作簿中插人新表时引发的事件
WindowActivate:窗口被激活时引发的事件
WindowDeactivate:窗口失去焦点时引发的事件
WindowResize:窗口高度和宽度发生改变时引发的事件
Window
Window.RangeSelection
主题
主题
chart
主题
主题
主题
shape
主题
主题
主题
正则表达式
引用外部对象:CreateObject("vbscript.regexp")
Porperty:
Pattern:用于接收表达式
Global:全局模式
Multiline:多行模式
IgoreCase:是否大小写匹配
Method:
Execute: 执行表达式,返回一个 MatchCollection 对象,该对象包含每个成功匹配的 Match 对象
FirstIndex:匹配的字符在字符串的位置
Len:长度
value:值
Test:测试匹配,返回true或false
Replace:替换
元字符
\d 和 \D :数字 和 非数字
\s 和 \S :匹配任何空白字符,包括空格、制表符、换页符 和 非空白 字符
\w 和 \W :包括下划线的任何单词字符 和 非任何非单词字符
. (点)任何字符(不包括回车符)
子主题
子主题
限定符
+ :多个(2个以上)
? :零个或1个
* :零个或多个
a | b :同“或”,表示a或b
{ }:限定数量上下限
{ 4 } :只能4个
{4,} :最少4个,上限不限
{,4} :最多4个
{4,6} :只能4到6个
[ ]:可选1个
^ 和 [^XX ] :行首限定符 和 在[ ]内表示匹配非XX字符
$ :行尾限定符
( ):分组
反义符
示例
File System Object (FSO对象模型)
Subobject 各个子对象
FileSystem0bject (FSO模型的主对象)
Property:
Drives:驱动器集合
Method:
BuildPath
和File相关
FileExists:判断文件是否存在
GetBaseName:获取文件名(不含后缀)
GetFile:获取文件
GetFileName:获取文件名
GetFileVersion:获取文件版本
GetExtensionName:获取文件后缀名
CopyFile:复制文件
MoveFile:移动文件
DeleteFile:删除文件
CreateTextFile:创建文本文件
和Folder相关
FolderExists:判断文件夹是否存在
GetFolder:获取文件夹
CreateFolder:创建文件夹
GetParentFolderName:获取父文件夹名
GetSpecialFolder:
CopyFolder:复制文件夹
MoveFolder:移动文件夹
DeleteFolder:删除文件夹
DriveExists:判断驱动器是否存在
GetAbsolutePathName
GetDrive:获取驱动器
GetDriveName:获取驱动器名
GetStandardStream
GetTempName
OpenTextFile:打开文本文件
Folder
Property
Attributes
DateCreated
DateLastAccessed
DateLastModified
Drive
Files
Name
IsRootFolder
ParentFolder
Path
ShortIame
ShortPath
Size
SubFolders:子文件夹
Type
Method
Copy
CreateTextFile
Delete
Move
Folders
Add (Name As String)
Count:
Item:
File
Property
Attributes:返回下列属性(值)中的一个或其组合:Nommal(0)ReadOnly(1)、Hidden(2)、System(4)、Volume(9)、Directory(16))、Archive(32)。
DateCreated:创建日期和时间
DateLastAccessed:最后访问日期和时间
DateLastModified:最后修改日期和时间
Drive:文件的驱动器对象
Name:文件名
ParentFolder:父文件夹
Path:文件路径
ShortName:返回DOS风格的8.3形式的文件名
ShortPath:返回DOS风格的8.3形式的绝对路径
Size:文件大小(字节)
Type:文件类型说明字符串
Method
Copy
Delete
Move
OpenAsTextStream
Files
Count:
Item:
Drive
Property
AvailableSpace:磁盘可用空间
DriveLetter:驱动盘字母(盘符)
DriveType:磁盘类型
FileSystem:文件系统类型
FreeSpace:可用磁盘空间
IsReady:磁盘是否准备好
Path:路径
RootFolder:根文件夹
SerialNumber:磁盘序列号,
ShareName:网络硬盘分享名
TotalSize:总空间大小(以字节为单位)
VolumeName:磁盘卷标名
Drives
Count:
Item:
TextStream
AtEndOfLine:文本输入指针是否处于行尾
AtEndOfStream:文本输入指针是否处于最末尾
Close
Column
Line
Read
Readall
ReadLine
Skip
SkipLine
Write
WriteBlankLines
WriteLine
Property
CompareMethod 比对方法
BinaryCompare:字节比对
TextCompare:字符比对
DatabaseCompare:数据库比对
DriveTypeConst 驱动类型常量
CDRom
Fixed
RamDisk
Remote
Removable
UnknownType
FileAttribute
Alias:别名
Archive:作者
Compressed:压缩
Directory:目录
Hidden:隐藏
Normal:常规
ReadOnly:只读
System:系统
Volume:驱动器卷标
IOMode 输入输出模式
ForAppending:追加中
ForReading:读取中
ForWriting:写入中
SpecialFolderConst 特殊文件常量
SystemFolder:系统文件夹
TemporaryFolder:;临时文件夹
WindowsFolder:Windows文件夹
StandardStreamTypes
StdErr:
StdIn:
StdOut:
Tristate
TristateTrue
TristateFalse
TristateMixed
TristateUsedefault
selenium (官方原版)
Actions:User-facing API for emulating complex user gestures.
Alert:
ChromeDriver:Chrome浏览器驱动
方法:delete
子主题
EdgeDriver:Edge浏览器驱动
IEDriver:IE浏览器驱动
OperaDriver:欧朋浏览器驱动
WebDriver:网页驱动
Application:应用
Assert:断言
By:所属
Cookie:
Cookies:
Dictionary:字典
DictionaryItem:字典条目
Image:图片
Keyboard:键盘
Keys:键
List:名单
Manage:管理
Mouse:鼠标
PdfFile:PDF文件
PhantomJSDriver:
Point:磅
Proxy:网络代理
SelectElement:选择元素
Size:大小
Storage:存储
Table:表格
TableElement:表格元素
TableRow:表格行
Timeouts:超时
TouchActions:触摸操作
TouchScreen:触摸屏
Utils:实用性
Verify:验证
Waiter:服务员
WebElement:网页元素
WebElements:collection of Web elements (One-based)
Window:网页窗口
CacheState:缓存状态
MouseButton:鼠标按钮
Strategy:策略
SeleniumBasic 刘永富编译版
Actions
ChromeDriverService
AndroidlebugBridgePort:安卓调试桥端口
CreateDefaultService
Dispose
EnableVerboseLogging
HideCommandPromptWindow:隐藏命令行窗口
HostHame
IsRunning
LogPath
Port:端口
PortServerAddress:端口服务IP
ProcessId
Start:开始
SuppressInitialDiagnosticInformat
UrlPathFrefix
WhitelistedIPAddresses:IP白名单
ChromeDriverOptions
AcceptInsecureCertificates
AddAdditionalCapability
AddArgument
AddEncodedExtension
AddExcludedArgument
AddExtension
AddLocalStatePreference
AddUserFrofileFreference
AddwindowType
Arguments
BinaryLocation
BrowserName:浏览器名称
BrowserVersion:浏览器版本
DebuggerAddress:调试地址
EnableMobileEmulation:
EnableMobileEmulation_deviceSettings:
Extensions:
LeaveBrowserRurning:
MinidumpPath:
PlatformName:
Proxy:网络代理
ToCapabilities:
ToString:
UseSpecCompliantProtocol:
EdgelriverService
Edge0ptions
FirefoxdriverService
Firefox0ptions
OperaDriverService
OperaOptions
InternetExplorerdriverService
InternetExplorer0ptions
FirefoxFrofile
SafariDriverService
SafariOptions
IWebDriver
IWebElement
IOptions
Cookie
ICookieJar
IAlert
ICapabilities
INavigation
ITargetLocator
ITimeouts
IWindow
Keys
Position
Proxy
ProxyKind
Screenshot
ScreenshotImageFormat
Size
Utility
WebdriverWait
Xpath元素
子主题
子主题
子主题
子主题
子主题
子主题
元素的种类
子网页
内嵌网页
网页框架
弹窗
链接
文本输入框
属性property:
方法Method:
Clear:清除内容
Sendkeys:发送按键或字符
子主题
表格
标题
行
列
按钮
弹起
按下
表单控件
单选框
多选框
点按钮
下拉选择列表
文本
图片、图标
中心主题
主题
主题
主题
控件
主题
主题
主题
其它
excel内置对话框
Filedialog文件选择对话框
Hyperlink:超链接
主题