Excel VBA 學習要點總結

最近自學Excel VBA筆記總結,分享給大家
聲明變量儲存長度:Dim 變量名 As Sting * 10 字符串類型存儲10個字符
編寫語句時換行,空格+“_”+回車。
多行語句合并,每行語句結束后加“:”(英文字符冒號)添加下一行語句。
注釋語句,“'”英文字符單引號后加注釋語句,可單獨一行或在代碼結束后添加,Rem +注釋語句,只能單獨一行。
調試時,利用注釋語句,在不運行的代碼前添加單引號或Rem,方便調試,不要重復刪除和添加代碼。
Application對象
常用對象:

Application.ScreenUpdating=True|False 設置是否顯示代碼執(zhí)行過程,可加快程序運行速度。
工作表對象.Delete 刪除工作表對象
Application.DisplayAlerts=True|False 是否顯示警告信息
Application.EnableEvents=True|False 啟用/禁用事件
Application.WorksheetFunction.工作表函數(shù),調用工作表中有,VBA中無的函數(shù),VBA已存在的函數(shù)不能使用此方法。
Application常用屬性:

工作簿
引用工作簿:Workbooks.Item(索引號),簡寫:Workbooks(索引號),通過工作簿名來引用:Workbooks("工作簿名")
工作簿.Name 返回工作簿名稱
工作簿.Path 返回工作簿路徑
工作簿.FullName?返回工作簿路徑和名稱
工作簿W(wǎng)orkbook方法,Add添加新工作簿,Open打開工作簿,Activate激活工作簿,Save保存工作簿,SaveAs另存工作簿,SaveCopyAs另存為且不關閉原工作簿,Close關閉工作簿
工作表
引用工作表:Worksheets.Item(索引號),簡寫:Worksheets(索引號),通過工作表名來引用:Worksheets("工作表名")
ActiveSheet引用當前活動工作表
工作表常用屬性和方法:Add插入新工作表,Name工作表名稱屬性,Delete刪除工作表,Activate和Select可激活工作表,Copy復制工作表,Move移動工作表,Visible屬性顯示或隱藏工作表
WorkSheets.Count獲取當前工作簿中工作表的數(shù)量
Range對象
引用單元格區(qū)域:Range("單元格區(qū)域")
引用多個不連續(xù)區(qū)域:Range("區(qū)域1,區(qū)域2,區(qū)域3...")
引用相交區(qū)域:Range("區(qū)域1 區(qū)域2")不同區(qū)域間用空格分隔
引用兩個區(qū)域圍成的矩形區(qū)域:Range("區(qū)域1","區(qū)域2")
Range("區(qū)域").Cells(行,列)引用區(qū)域中指定行列的單元格,Cells(索引n) 引用區(qū)域中的第n個單元格,索引號大于區(qū)域單元格數(shù)量時,自動向行方向擴展,列數(shù)不變
Cells屬性只能引用一個單元格
同時選中兩個不連續(xù)區(qū)域:Application.Union(Range("區(qū)域1"),Range("區(qū)域2")).Select
Range.Offset(水平方向,豎直方向)方法可控制對象的移動距離,參數(shù)1正為下負為上,參數(shù)2正為右負為左移動。
Resize(行,列)方法用于縮放單元格區(qū)域
UsedRange屬性返回工作表中已使用的單元格圍成的矩形區(qū)域,且包括其中的空單元格
CurrentRegion屬性返回當前區(qū)域以空行和空列組合為邊界的區(qū)域,CurrentRegion區(qū)域小于等于UsedRange返回的區(qū)域
End屬性:返回一個?Range?對象,它表示包含源范圍的區(qū)域末尾的單元格。?相當于按 End+向上鍵(xlUp)、End+向下鍵(xlDown)、End+向左鍵(xlToLeft)或 End+向右鍵(xlToRight)。此為只讀?Range?對象。
將記錄寫入新行:Range("區(qū)域").End(xlDown).Offset(1,0).Value=記錄內容
Value屬性:表示單元格內容
Count返回單元格區(qū)域內的單元格個數(shù),區(qū)域.Rows.Count返回區(qū)域行數(shù),區(qū)域.Columns.Count返回區(qū)域列數(shù)
Address屬性,返回單元格地址
Activate與Select選擇的區(qū)別:Activate在激活區(qū)域選擇一個單元格后,區(qū)域仍呈選中狀態(tài),Select則只會選中一個單元格。
Clear清除所有,ClearComments清除批注,ClearContents清除內容,ClearFormats清除格式
Copy,Paste復制和粘貼方法:單元格區(qū)域1.copy[Destination:=]?單元格區(qū)域2
Delete方法刪除單元格
其他對象
Names對象,使用Name方法定義名稱
Comment對象:AddComment方法添加批注,若單元格已有批注,再添加將出錯。
Font對象:設置字體格式
Worksheet對象事件
Worksheet_Change事件:對象中單元格內容發(fā)生改變時觸發(fā)該事件
Worksheet_SelectionChange事件:選定的單元格發(fā)生改變時觸發(fā)該事件
Worksheet_Activate事件:激活工作表時觸發(fā)該事件
Worksheet_Deactivate事件:禁用(激活其他工作表,當前工作表變成不活動工作表)該工作表時發(fā)生該事件
其他Worksheet事件:BeforeDoubleClick事件:雙擊工作表之后,雙擊操作之前發(fā)生該事件;BeforeRightClick事件:右擊工作表,右擊操作之前發(fā)生該事件;Calculate重新計算工作表之后發(fā)生該事件;FollowHyperlink事件:單擊工作表中的任意超鏈接時發(fā)生;PivotTableUpdate事件:在工作表中更新數(shù)據(jù)透視表之后發(fā)生;
Workbook對象事件
Workbook_Open事件:打開工作簿時運行該事件
Workbook_BeforeClose事件:關閉工作簿之前發(fā)生該事件
Workbook_SheetChange事件:工作簿中任意單元格改變時發(fā)生該事件
其他事件方法
Application.Onkey(表示按鍵字符串,運行的事件)方法:當按特定鍵或特定的組合鍵時運行指定的過程。

Application.OnTime(運行時間,運行過程[,最后運行時間][,True|False])方法:安排一個過程在將來的特定時間運行(既可以是具體指定的某個時間,也可以是指定的一段時間之后)。
InputBox方法中的Top,Left參數(shù)代表輸入窗口中工作表的相對位置,InputBox函數(shù)中xpos,ypos參數(shù)表示輸入窗口中在平面中的相對位置。
InputBox方法Type參數(shù)可設置返回值的數(shù)據(jù)類型,InputBox函數(shù)只返回String類型