一、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。