一、VBA数据类型express
数据类型 | 存储空间大小 | 范围 |
Byte | 1个字节 | 0-255 |
Boolean | 2个字节 | true或false |
Integer | 2个字节 | -32768-32767 |
Long | 4个字节 | — |
Single | 4个字节 | — |
Double | 8个字节 | — |
Currency | 8个字节 | — |
Decimal | 14个字节 | — |
Date | 8个字符 | — |
Object | 4个字节 | 任何Object引用 |
String(变长) | 10字节加字符串长度 | 0到大约20亿 |
String(定长) | 字符串长度 | 1到大约65400 |
Variant(数字) | 16个字节 | 任何数字值,最大可达Double的范围 |
Variant(字符) | 22个字节加字符串长度 | 与变长String有相同的范围 |
用户自定义 | 全部元素所需数目 | — |
若是不指定数据类型,VBA自动将变量指定为变体型Variant.函数
1.1 数据类型的转换测试
CBool Boolean 任何有效的字符串或数值表达式
ui
CByte Byte 0-255lua
CCur Currency -
spa
CDate Date -code
CDbl Double -orm
CDec Decimal 小数的数值对象
CInt Integer -blog
CLng Long -
CSng Single -
CStr String -
CVar Variant -
1.2 常量的声明
[Public | Private] Const constname [As type] = expression
Public:用于在模块级别中声明在全部模块中对全部过程均可以使用的常量,在过程当中声明常量不能使用Public。
Private:用于在模块级别中声明只能在包含该声明的模块中使用的常数,不能在过程当中使用。
二、过程
过程主要分为如下三类:Sub过程、Function过程和Property过程。
过程的命名规则注意事项:过程名能够和本过程的私有变量同名,但却不能和公有变量同名。
Sub过程语法:
Private | Public | Friend | [Static] Sub name [(arglist)] [statements] [Exit Sub] [statements] End Sub
Public:表示全部模块的全部其余过程均可访问这个Sub过程。若是在包含Option Private的模块中使用,则这个过程在该工做外是不可以使用的。
Private:只有在包含其声明的模块中的其余过程能够访问该Sub过程。
Friend:只能在类模块中使用,表示该Sub过程在整个工程中都是可见的,但对对象实例的控制者是不可见的。
Static:表示在调用时保留Sub过程的局部变量的值。Static属性对在Sub外声明的变量不会产生影响。即便过程当中也使用了这些变量。
按值传递和按址传递的参数区别:
Byval:按值传递,该状况下过程访问的是变量的副本,过程不会改变变量自己的值。
Byref:按地址传递,过程访问的是变量自己,过程能够改变变量的真正值。默认状况下,都按值传递参数。
Me关键字的的注意事项:
Me关键字不能出如今标准模块中,因标准模块不能表明对象。若从类模块中复制代码,则必须用指定对象或窗体名来取代Me,以保持原来的引用。一般只能在事件过程当中使用,包括工做表代码窗口,工做簿代码窗口和类模块。
Me关键字不能出如今Set赋值号的左边,正确地使用ME赋值时是使用Let或者忽略。
三、Exit Sub和End的区别
一、是否释放公有变量
二、是否终止全部程序
四、Workbooks/Workbook/ThisWorkbook/ActiveWorkbook
五、Worksheets/Worksheet/Sheets/Activesheet
六、EntireRow/EntireColumn属性
返回一个Range 对象,该对象表明包含指定区域的整个行/列(或若干行/列)。只读。
七、Rows属性
在不用对象识别符的状况下使用此属性等价于ActiveSheet.Rows。
当应用于含多个选定区域的 Range 对象时,该属性只返回该区域中第一个子区域内的行。例如,若是 Range 对象有两个子区域:A1:B2 和 C3:D4,则 Selection.Rows.Count 返回 2 而不是 4。若要在一个可能包含多个选定区域的区域中使用该属性,请测试 Areas.Count 来判断该区域是否包含多个选择区域。若是是,则像第 3 个示例中所示,在该区域中的每一个子区域上循环。
八、Columns属性
应用于 Application 对象的 Columns 属性。
返回一个 Range 对象,该对象表明活动工做表中的全部列。若是活动文档不是工做表,则 Columns 属性无效。只读。
应用于 Range 对象的 Columns 属性。
返回 Range 对象,该对象表明指定单元格区域中的列。只读。
应用于 WorkSheet 对象的 Columns 属性。
返回一个 Range 对象,该对象表明指定工做表上的全部列。只读。
在不使用对象识别符的状况下使用此属性等价于 ActiveSheet.Columns。
当对一个多重选定区域的 Range 对象应用属性时,此属性返回的只是所选区域的第一个子区域中的列。例如,若是 Range 对象有两个子区域 A1:B2 和 C3:D4,那么,Selection.Columns.Count 的返回值是 2,而不是 4。若要对一个可能包含多重选定区域的区域使用此属性,请用 Areas.Count 方法测试一下此区域内是否包含多个子区域。若是确实包含多个子区域,可对此区域内的每一子区域进行循环。
九、Row/Column属性
返回指定区域中第一个子区域的第一行/列的行/列号。Long 类型,只读。
十、FileDialog属性
返回一个FileDialog 对象,该对象表明文件对话框的实例。
expression.FileDialog(fileDialogType)
fileDialogType-->MsoFileDialogType 类型,必需。文件对话框的类型。
MsoFileDialogType 可为如下 MsoFileDialogType 常量之一。
msoFileDialogFilePicker: 容许用户选择一个文件。
msoFileDialogFolderPicker: 容许用户选择一个文件夹。
msoFileDialogOpen: 容许用户打开一个文件。
msoFileDialogSaveAs: 容许用户保存一个文件。
十一、Application对象
属性:
A-->ActiveCell、ActiveChart、ActivePrinter、ActiveProtectedViewWindow、ActiveSheet、ActiveWindow、ActiveWorkbook、AlertBeforeOverwriting、Application、AskToUpdateLinks、AutoCorrect、AutoPercentEntry
C-->Caption、CellDragAndDrop、ClipboardFormats、Columns、CommandBars、CopyObjectsWithCells、Cursor、CutCopyMode
D-->DecimalSeparator、Dialogs、DefaultFilePath、DefaultSaveFormat、DeferAsyncQueries、DisplayAlerts、DisplayCommentIndicator、DisplayFormulaAutoComplete、DisplayFullScreen、DisplayFunctionToolTips、DisplayNoteIndicator、DisplayRecentFiles、DisplayScrollBars、DisplayStatusBar
FileDialog、、、
OperatingSystem、Version、Visible、
W-->WarnOnFunctionNameConflict、Watches、Width、Windows、、WindowState、Workbooks、WorksheetFunction、Worksheets、
方法:
ActivateMicrosoftApp:激活一个Microsoft应用程序,若是程序正在运行中,此方法激活正在运行中的程序,不然,此方法建立启动一个新的应用程序实例。
AddCustomList:为自定义自动填充或者自定义排序增长一个自定义序列,若是增长的序列已存在,此方法将不作什么。
Calculate:计算全部打开的工做簿或者某个工做簿中的指定工做表或者某个工做表中的指定区域。
CentimetersToPoints:将厘米转换为点度量(1点=0.035cm)
CheckAbort:
CheckSpelling:
ConvertFormula:
DeleteCustomList:
DoubleClick:
Evaluate:
FindFile:
GetCustomListContents:
GetCustomListNum:
GetOpenFilename:
GetSaveAsFilename:
Goto:
InchesToPoints:将英寸转换为点度量
InputBox:显示一个对话框用于用户输入,返回输入在对话框中的信息。
Intersect:返回一个Range对象,它表示两个或多个范围的矩形交集。
MailLogoff:
MailLogon:
OnKey:
OnRepeat:若是在运行设置此属性的过程以后选择Repeat命令,则设置Repeat项目以及将运行的过程的名称。
OnTime:在未来指定的时间安排一个程序运行(在一天中特定的时间或者通过一段特定时间后)。
OnUndo:设置Undo命令的文本以及运行设置此属性的过程后选择“撤消”命令时运行的过程的名称。
Quit:关闭Microsoft Excel
Repeat:重复上一次用户接口操做
Run:运行一个宏或者调用一个函数
SendKeys:将案件发送到活动的应用程序中
Undo:取消上一次用户接口操做
Union:返回两至多个区域的联合
Volatile:将用户自定义函数标记为易失性函数。一个易失性函数必须被计算不管什么时候工做表中的任意单元格出现计算时。一个非易失性函数仅当输入变量改变时从新计算。若是在用户自定义函数中不使用计算的工做表单元格,此方法将没有影响。
Wait:暂停正在运行的宏直到一个指定的时间点,若是到达指定的时间点,返回True。