Excel VBA 語句集(1)

VBA語句集
(
1)

定製模塊行爲
(1) Option Explicit '強制對模塊內所有變量進行聲明
Option Private Module '
標記模塊爲私有,僅對同一工程中其它模塊有用,在宏對話框中不顯示
Option Compare Text '字符串不區分大小寫
Option Base 1 '
指定數組的第一個下標爲1
(2) On Error Resume Next '
忽略錯誤繼續執行VBA代碼,避免出現錯誤消息
(3) On Error GoTo ErrorHandler '
當錯誤發生時跳轉到過程中的某個位置
(4) On Error GoTo 0 '
恢復正常的錯誤提示
(5) Application.DisplayAlerts=False '
在程序執行過程中使出現的警告框不顯示
(6) Application.ScreenUpdating=False '
關閉屏幕刷新
Application.ScreenUpdating=True '
打開屏幕刷新
(7) Application.Enable.CancelKey=xlDisabled '
禁用Ctrl+Break中止宏運行的功能

工作簿
(8) Workbooks.Add() '
創建一個新的工作簿
(9) Workbooks(“book1.xls”).Activate '
激活名爲book1的工作簿
(10) ThisWorkbook.Save '
保存工作簿
(11) ThisWorkbook.close '
關閉當前工作簿
(12) ActiveWorkbook.Sheets.Count '
獲取活動工作薄中工作表數
(13) ActiveWorkbook.name '
返回活動工作薄的名稱
(14) ThisWorkbook.Name ‘
返回當前工作簿名稱
ThisWorkbook.FullName ‘
返回當前工作簿路徑和名稱
(15) ActiveWindow.EnableResize=False ‘
禁止調整活動工作簿的大小
(16) Application.Window.Arrange xlArrangeStyleTiled ‘
將工作簿以平鋪方式排列
(17) ActiveWorkbook.WindowState=xlMaximized ‘
將當前工作簿最大化

工作表
(18) ActiveSheet.UsedRange.Rows.Count ‘
當前工作表中已使用的行數
(19) Rows.Count ‘
獲取工作表的行數(注:考慮向前兼容性)
(20) Sheets(Sheet1).Name= “Sum” '
Sheet1命名爲Sum
(21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) '
添加一個新工作表在第一工作表前
(22) ActiveSheet.Move After:=ActiveWorkbook. _
Sheets(ActiveWorkbook.Sheets.Count) '
將當前工作表移至工作表的最後
(23) Worksheets(Array(“sheet1”,”sheet2”)).Select '
同時選擇工作表1和工作表2
(24) Sheets(“sheet1”).Delete
Sheets(1).Delete '刪除工作表1
(25) ActiveWorkbook.Sheets(i).Name '
獲取工作表i的名稱
(26) ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines '
切換工作表中的網格線顯示,這種方法也可以用在其它方面進行相互切換,即相當於開關按鈕
(27) ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings ‘
切換工作表中的行列邊框顯示
(28) ActiveSheet.UsedRange.FormatConditions.Delete ‘
刪除當前工作表中所有的條件格式
(29) Cells.Hyperlinks.Delete ‘
取消當前工作表所有超鏈接
(30) ActiveSheet.PageSetup.Orientation=xlLandscape
ActiveSheet.PageSetup.Orientation=2 '將頁面設置更改爲橫向
(31) ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘
在頁面設置的表尾中輸入文件路徑
ActiveSheet.PageSetup.LeftFooter=Application.UserName ‘
將用戶名放置在活動工作表的頁腳

單元格/單元格區域
(32) ActiveCell.CurrentRegion.Select
Range(ActiveCell.End(xlUp),ActiveCell.End(xlDown)).Select
'
選擇當前活動單元格所包含的範圍,上下左右無空行
(33) Cells.Select ‘
選定當前工作表的所有單元格
(34) Range(“A1”).ClearContents '
清除活動工作表上單元格A1中的內容
Selection.ClearContents '
清除選定區域內容
Range(“A1:D4”).Clear '
徹底清除A1D4單元格區域的內容,包括格式
(35) Cells.Clear '
清除工作表中所有單元格的內容
(36) ActiveCell.Offset(1,0).Select '
活動單元格下移一行,同理,可下移一列
(37) Range(“A1”).Offset(ColumnOffset:=1)
Range(“A1”).Offset(,1) ‘偏移一列
Range(“A1”).Offset(Rowoffset:=-1)
Range(“A1”).Offset(-1) ‘向上偏移一行
(38) Range(“A1”).Copy Range(“B1”) '
複製單元格A1,粘貼到單元格B1
Range(“A1:D8”).Copy Range(“F1”) '
將單元格區域複製到單元格F1開始的區域中
Range(“A1:D8”).Cut Range(“F1”) '
剪切單元格區域A1D8,複製到單元格F1開始的區域中
Range(“A1”).CurrentRegion.Copy Sheets(“Sheet2”).Range(“A1”) '
複製包含A1的單元格區域到工作表2中以A1起始的單元格區域中
注:CurrentRegion屬性等價於定位命令,由一個矩形單元格塊組成,周圍是一個或多個空行或列
(39) ActiveWindow.RangeSelection.Value=XX '
將值XX輸入到所選單元格區域中
(40) ActiveWindow.RangeSelection.Count '
活動窗口中選擇的單元格數
(41) Selection.Count '
當前選中區域的單元格數
(42) GetAddress=Replace(Hyperlinkcell.Hyperlinks(1).Address,mailto:,””) ‘
返回單元格中超級鏈接的地址並賦值
(43) TextColor=Range(“A1”).Font.ColorIndex ‘
檢查單元格A1的文本顏色並返回顏色索引
Range(“A1”).Interior.ColorIndex ‘
獲取單元格A1背景色
(44) cells.count ‘
返回當前工作表的單元格數
(45) Selection.Range(“E4”).Select ‘
激活當前活動單元格下方3行,向右4列的單元格
(46) Cells.Item(5,”C”) ‘
引單元格C5
Cells.Item(5,3) ‘
引單元格C5
(47) Range(“A1”).Offset(RowOffset:=4,ColumnOffset:=5)
Range(“A1”).Offset(4,5) ‘指定單元格F5
(48) Range(“B3”).Resize(RowSize:=11,ColumnSize:=3)
Rnage(“B3”).Resize(11,3) ‘
創建B3D13區域
(49) Range(“Data”).Resize(,2) ‘
Data區域擴充2
(50) Union(Range(“Data1”),Range(“Data2”)) ‘
Data1Data2區域連接
(51) Intersect(Range(“Data1”),Range(“Data2”)) ‘
返回Data1Data2區域的交叉區域
(52) Range(“Data”).Count ‘
單元格區域Data中的單元格數
Range(“Data”). Columns.Count ‘
單元格區域Data中的列數
Range(“Data”). Rows.Count ‘
單元格區域Data中的行數
(53) Selection.Columns.Count ‘
當前選中的單元格區域中的列數
Selection.Rows.Count ‘
當前選中的單元格區域中的行數
(54) Selection.Areas.Count ‘
選中的單元格區域所包含的區域數
(55) ActiveSheet.UsedRange.Row ‘
獲取單元格區域中使用的第一行的行號
(56) Rng.Column ‘
獲取單元格區域Rng左上角單元格所在列編號
(57) ActiveSheet.Cells.SpecialCells(xlCellTypeAllFormatConditions) ‘
在活動工作表中返回所有符合條件格式設置的區域
(58) Range(“A1”).AutoFilter Field:=3,VisibleDropDown:=False ‘
關閉由於執行自動篩選命令產生的第3個字段的下拉列表

名稱
(59) Range(“A1
C3”).Name=“computer” ‘命名A1C3區域爲computer
Range(“D1E6”).Name=“Sheet1!book” ‘命名局部變量,即Sheet1上區域D1E6book
Names(“computer”).Name=“robot” ‘將區域computer重命名爲robot
(60) Names(“book”).Delete ‘
刪除名稱
(61) Names.Add Name:=“ContentList”
_
RefersTo:=“=OFFSET(Sheet1!A2,0,0,COUNTA(Sheet2!$A:$A))” ‘
動態命名列
(62) Names.Add Name:=“Company”,RefersTo:=“CompanyCar” ‘
命名字符串CompanyCar
(63) Names.Add Name:=“Total”,RefersTo:=123456 ‘
將數字123456命名爲Total。注意數字不能加引號,否則就是命名字符串了。
(64) Names.Add Name:=“MyArray”,RefersTo:=ArrayNum ‘
將數組ArrayNum命名爲MyArray
(65) Names.Add Name:=“ProduceNum”,RefersTo:=“=$B$1”,Visible:=False ‘
將名稱隱藏
(66) ActiveWorkbook.Names(“Com”).Name ‘
返回名稱字符串

公式與函數
(67) Application.WorksheetFunction.IsNumber(“A1”) '
使用工作表函數檢查A1單元格中的數據是否爲數字
(68) Range(“A:A”).Find(Application.WorksheetFunction.Max(Range(“A:A”))).Activate
'
激活單元格區域A列中最大值的單元格
(69) Cells(8,8).FormulaArray=“=SUM(R2C[-1]:R[-1]C[-1]*R2C:R[-1]C)” ‘
在單元格中輸入數組公式。注意必須使用R1C1樣式的表達式

圖表
(70) ActiveSheet.ChartObjects.Count '
獲取當前工作表中圖表的個數
(71) ActiveSheet.ChartObjects(“Chart1”).Select ‘
選中當前工作表中圖表Chart1
(72) ActiveSheet.ChartObjects(“Chart1”).Activate
ActiveChart.ChartArea.Select ‘
選中當前圖表區域
(73) WorkSheets(“Sheet1”).ChartObjects(“Chart2”).Chart. _
ChartArea.Interior.ColorIndex=2 ‘
更改工作表中圖表的圖表區的顏色
(74) Sheets(“Chart2”).ChartArea.Interior.ColorIndex=2 ‘
更改圖表工作表中圖表區的顏色
(75) Charts.Add ‘
添加新的圖表工作表
(76) ActiveChart.SetSourceData Source:=Sheets(“Sheet1”).Range(“A1:D5”), _
PlotBy:=xlColumns ‘
指定圖表數據源並按列排列
(77) ActiveChart.Location Where:=xlLocationAsNewSheet ‘
新圖表作爲新圖表工作表
(78) ActiveChart.PlotArea.Interior.ColorIndex=xlNone ‘
將繪圖區顏色變爲白色
(79) WorkSheets(“Sheet1”).ChartObjects(1).Chart. _
Export FileName:=“C
MyChart.gif”,FilterName:=“GIF” ‘將圖表1導出到C盤上並命名爲MyChart.gif

窗體
(80) MsgBox “Hello!” '
消息框中顯示消息Hello
(81) Ans=MsgBox(“Continue?”,vbYesNo) '
在消息框中點擊按鈕,則Ans值爲vbYes;點擊按鈕,則Ans值爲vbNo
If MsgBox(“Continue?”,vbYesNo)<>vbYes Then Exit Sub '
返回值不爲,則退出
(82) Config=vbYesNo+vbQuestion+vbDefaultButton2 '
使用常量的組合,賦值組Config變量,並設置第二個按鈕爲缺省按鈕
(83) MsgBox “This is the first line.” & vbNewLine & “Second line.” '
在消息框中強制換行,可用vbCrLf代替vbNewLine
(84) MsgBox "the average is :"&Format(Application.WorksheetFunction.Average(Selection),"#,##0.00"),vbInformation, "selection count average" & Chr(13) '
應用工作表函數返回所選區域的平均值並按指定格式顯示
(85) Userform1.Show ‘
顯示用戶窗體
(86) Load Userform1 ‘
加載一個用戶窗體,但該窗體處於隱藏狀態
(87) Userform1.Hide ‘
隱藏用戶窗體
(88) Unload Userform1
Unload Me ‘卸載用戶窗體
(89) (
圖像控件).Picture=LoadPicture(“圖像路徑”) ‘在用戶窗體中顯示圖形
(90) UserForm1.Show 0
UserForm1.Show vbModeless ‘將窗體設置爲無模式狀態
(91) Me.Height=Int(0.88*ActiveWindow.Height) ‘
窗體高度爲當前活動窗口高度的0.88
Me.Width=Int(0.88*ActiveWindow.Width) ‘
窗體寬度爲當前活動窗口高度的0.88

事件
(92) Application.EnableEvents=False '
禁用所有事件
Application.EnableEvents=True '
啓用所有事件
注:不適用於用戶窗體控件觸發的事件
對象
(93) Set ExcelSheet = CreateObject("Excel.Sheet") ‘
創建一個Excel工作表對象
ExcelSheet.Application.Visible = True '
設置 Application 對象使 Excel 可見
ExcelSheet.Application.Cells(1, 1).Value = "Data" '
在表格的第一個單元中輸入文本
ExcelSheet.SaveAs "C:/TEST.XLS" '
將該表格保存到C:/test.xls 目錄
ExcelSheet.Application.Quit '
關閉 Excel
Set ExcelSheet = Nothing '
釋放該對象變量
(94) ‘
聲明並創建一個Excel對象引用
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
(95) ‘
創建並傳遞一個 Excel.Application 對象的引用
Call MySub (CreateObject("Excel.Application"))
(96) Set d = CreateObject(Scripting.Dictionary) ‘
創建一個 Dictionary 對象變量
(97) d.Add "a", "Athens" '
爲對象變量添加關鍵字和條目

其他
(98) Application.OnKey “^I”,”macro” '
設置Ctrl+I鍵爲macro過程的快捷鍵
(99) Application.CutCopyMode=False ‘
退出剪切/複製模式
(100) Application.Volatile True '
無論何時工作表中任意單元格重新計算,都會強制計算該函數
Application.Volatile False '
只有在該函數的一個或多個參數發生改變時,纔會重新計算該函數

By fanjy in 2006-6-4

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章