VBA編程常用語句300句

**************
* 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 '徹底清除 A1至 D4 單元格區域的內容,包括格式

(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") '剪切單元格區域 A1至 D8,複製到單元格 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) '創建 B3:D13 區域

(49) Range("Data").Resize(,2) '將 Data 區域擴充 2列

(50) Union(Range("Data1"),Range("Data2")) '將 Data1 和 Data2 區域連接

(51) Intersect(Range("Data1"),Range("Data2")) '返回 Data1 和 Data2 區域的交叉區域

(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" '命名 A1:C3 區域爲 computer
或 Range("D1:E6").Name="Sheet1!book" '命名局部變量,即 Sheet1上區域 D1:E6爲 book
或 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 收藏於Excel吧 http://www.excelba.com *
*************************************************************

**************
* VBA 語句集 *
* (第 2 輯)  *
**************
 
****************
* 定製模塊行爲 *
****************

(101) Err.Clear '清除程序運行過程中所有的錯誤

**********
* 工作簿 *
**********

(102) ThisWorkbook.BuiltinDocumentProperties(""Last Save Time")
或 Application.Caller.Parent.Parent.BuiltinDocumentProperties(""Last Save Time") '返回上次保存工作簿的日期和時間

(103) ThisWorkbook.BuiltinDocumentProperties("Last Print Date")
或 Application.Caller.Parent.Parent.BuiltinDocumentProperties(""Last Print Date") '返回上次打印或預覽工作簿的日期和時間

(104) Workbooks.Close '關閉所有打開的工作簿

(105) ActiveWorkbook.LinkSources(xlExcelLinks)(1) '返回當前工作簿中的第一條鏈接

(106) ActiveWorkbook.CodeName
ThisWorkbook.CodeName  '返回工作簿代碼的名稱

(107) ActiveWorkbook.FileFormat 
ThisWorkbook.FileFormat  '返回當前工作簿文件格式代碼

(108) ThisWorkbook.Path
ActiveWorkbook.Path '返回當前工作簿的路徑(注:若工作簿未保存,則爲空)

(109) ThisWorkbook.ReadOnly
ActiveWorkbook.ReadOnly '返回當前工作簿的讀/寫值(爲 False)

(110) ThisWorkbook.Saved
ActiveWorkbook.Saved '返回工作簿的存儲值(若已保存則爲 False)

(111) Application.Visible = False '隱藏工作簿
Application.Visible = True '顯示工作簿
注:可與用戶窗體配合使用,即在打開工作簿時將工作簿隱藏,只顯示用戶窗體.可設置控制按鈕控制工作簿可見

**********
* 工作表 *
**********

(112) ActiveSheet.Columns("B").Insert '在A 列右側插入列,即插入 B 列
ActiveSheet.Columns("E").Cut
ActiveSheet.Columns("B").Insert  '以上兩句將 E 列數據移至 B 列,原 B 列及以後的數據相應後移
ActiveSheet.Columns("B").Cut
ActiveSheet.Columns("E").Insert '以上兩句將 B列數據移至 D列,原 C列和 D列數據相應左移一列

(113) ActiveSheet.Calculate '計算當前工作表

(114) ThisWorkbook.Worksheets(""sheet1").Visible=xlSheetHidden '正常隱藏工作表,同在 Excel 菜單中選擇""格式——工作表——隱藏"操作一樣
ThisWorkbook.Worksheets(""sheet1").Visible=xlSheetVeryHidden '隱藏工作表,不能通過在 Excel 菜單中選擇""格式——工作表——取消隱藏"來重新顯示工作表
ThisWorkbook.Worksheets(""sheet1").Visible=xlSheetVisible '顯示被隱藏的工作表

(115) ThisWorkbook.Sheets(1).ProtectContents '檢查工作表是否受到保護

(116) ThisWorkbook.Worksheets.Add Count:=2, Before:=ThisWorkbook.Worksheets(2) 
或 ThisWorkbook.Workshees.Add ThisWorkbook.Worksheets(2), , 2  '在第二個工作表之前添加兩個新的工作表

(117) ThisWorkbook.Worksheets(3).Copy '複製一個工作表到新的工作簿

(118) ThisWorkbook.Worksheets(3).Copy ThisWorkbook.Worksheets(2) '複製第三個工作表到第二個工作表之前

(119) ThisWorkbook.ActiveSheet.Columns.ColumnWidth = 20 '改變工作表的列寬爲 20
ThisWorkbook.ActiveSheet.Columns.ColumnWidth = ThisWorkbook.ActiveSheet.StandardWidth '將工作表的列寬恢復爲標準值
ThisWorkbook.ActiveSheet.Columns(1).ColumnWidth = 20 '改變工作表列 1的寬度爲 20

(120) ThisWorkbook.ActiveSheet.Rows.RowHeight = 10 '改變工作表的行高爲 10
ThisWorkbook.ActiveSheet.Rows.RowHeight = ThisWorkbook.ActiveSheet.StandardHeight '將工作表的行高恢復爲標準值
ThisWorkbook.ActiveSheet.Rows(1).RowHeight = 10 '改變工作表的行 1的高度值設置爲 10

(121) ThisWorkbook.Worksheets(1).Activate '當前工作簿中的第一個工作表被激活

(122) ThisWorkbook.Worksheets("Sheet1").Rows(1).Font.Bold = True '設置工作表Sheet1中的行1數據爲粗體

(123) ThisWorkbook.Worksheets("Sheet1").Rows(1).Hidden = True '將工作表Sheet1中的行1隱藏
ActiveCell.EntireRow.Hidden = True '將當前工作表中活動單元格所在的行隱藏
注:同樣可用於列。

(124) ActiveSheet.Range(""A:A").EntireColumn.AutoFit '自動調整當前工作表 A 列列寬

(125) ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues) '選中當前工作表中常量和文本單元格
ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues) '選中當前工作表中常量和文本及錯誤值單元格

**************
* 公式與函數 *
**************

(126) Application.MacroOptions Macro:="SumPro",Category:=4 '將自定義的 SumPro 函數指定給Excel 中的""統計函數"類別

(127) Application.MacroOptions Macro:="SumPro", Description:="First Sum,then Product" '爲自定義函數 SumPro 進行了功能說明

(128) Application.WorksheetFunction.CountA(Range(""A:A"))+1 '獲取 A 列的下一個空單元格

(129) WorksheetFunction.CountA(Cell.EntireColumn) '返回該單元格所在列非空單元格的數量
WorksheetFunction.CountA(Cell.EntireRow) '返回該單元格所在行非空單元格的數量

(130) WorksheetFunction.CountA(Cells) '返回工作表中非空單元格數量
 
(131) ActiveSheet.Range(""A20:D20").Formula=""=Sum(R[-19]C:R[-1]C"’對 A 列至 D列前 19個數值求和

********
* 圖表 *
********

(132) ActiveWindow.Visible=False 
或 ActiveChart.Deselect '使圖表處於非活動狀態

(133) TypeName(Selection)="Chart" '若選中的爲圖表,則該語句爲真,否則爲假

(134) ActiveSheet.ChartObjects.Delete '刪除工作表上所有的 ChartObject對象
ActiveWorkbook.Charts.Delete '刪除當前工作簿中所有的圖表工作表

**************
* 窗體和控件 *
**************

(135) UserForms.Add(MyForm).Show '添加用戶窗體 MyForm 並顯示

(136)TextName.SetFocus '設置文本框獲取輸入焦點

(137) SpinButton1.Value=0 '將數值調節鈕控件的值改爲 0

(138) TextBox1.Text=SpinButton1.Value '將數值調節鈕控件的值賦值給文本框控件
SpinButton1.Value=Val(TextBox1.Text) '將文本框控件值賦給數值調節鈕控件
CStr(SpinButton1.Value)=TextBox1.Text '數值調節鈕控件和文本框控件相比較

(139) UserForm1.Controls.Count '顯示窗體 UserForm1 上的控件數目

(140) ListBox1.AddItem ""Command1" '在列表框中添加 Command1

(141) ListBox1.ListIndex '返回列表框中條目的值,若爲-1,則表明未選中任何列表框中的條目

(142) RefEdit1.Text '返回代表單元格區域地址的文本字符串
RefEdit1.Text=ActiveWindow.RangeSelection.Address '初始化 RefEdit 控件顯示當前所選單元格區域
Set FirstCell=Range(RefEdit1.Text).Range(""A1") '設置某單元格區域左上角單元格

(143)  Application.OnTime Now + TimeValue("00:00:15"), "myProcedure" '等待 15 秒後運行 myProcedure過程

(144) ActiveWindow.ScrollColumn=ScrollBarColumns.Value ' 將滾動條控件的值賦值給ActiveWindow 對象的 ScrollColumn 屬性
ActiveWindow.ScrollRow=ScrollBarRows.Value '將滾動條控件的值賦值給ActiveWindow對象的ScrollRow 屬性

(145) UserForm1.ListBox1.AddItem Sheets(""Sheet1").Cells(1,1) '將單元格 A1 中的數據添加到列表框中
ListBox1.List=Product '將一個名爲 Product 數組的值添加到 ListBox1 中
ListBox1.RowSource="Sheet2!SumP" '使用工作表Sheet2中的 SumP 區域的值填充列表框

(146) ListBox1.Selected(0) '選中列表框中的第一個條目(注:當列表框允許一次選中多個條目時,必須使用Selected屬性)

(147) ListBox1.RemoveItem ListBox1.ListIndex '移除列表框中選中的條目

********
* 對象 *
********

********************
* Application 對象 *
********************

(148) Application.UserName '返回應用程序的用戶名

(149) Application.Caller '返回代表調用函數的單元格

(150) Application.Caller.Parent.Parent '返回調用函數的工作簿名稱

(151) Application.StatusBar="請等待……" '將文本寫到狀態欄
Application.StatusBar="請等待……" & Percent & ""% Completed" '更新狀態欄文本,以變量Percent 代表完成的百分比
Application.StatusBar=False '將狀態欄重新設置成正常狀態

(152) Application.Goto Reference:=Range(""A1:D4") '指定單元格區域 A1至 D4,等同於選擇""編輯——定位",指定單元格區域爲 A1至 D4,不會出現""定位"對話框

(153) Application.Dialogs(xlDialogFormulaGoto).Show '顯示""定位"對話框,但定位條件按鈕無效

(154) Application.Dialogs(xlDialogSelectSpecial).Show '顯示""定位條件"對話框

(155) Application.Dialogs(xlDialogFormatNumber).show '顯示""單元格格式"中的""數字"選項卡
Application.Dialogs(xlDialogAlignment).show '顯示""單元格格式"中的""對齊"選項卡
Application.Dialogs(xlDialogFontProperties).show '顯示""單元格格式"中的""字體"選項卡
Application.Dialogs(xlDialogBorder).show '顯示""單元格格式"中的""邊框"選項卡
Application.Dialogs(xlDialogPatterns).show '顯示""單元格格式"中的""圖案"選項卡
Application.Dialogs(xlDialogCellProtection).show '顯示""單元格格式"中的""保護"選項卡
注:無法一次顯示帶選項卡的""單元格格式"對話框,只能一次顯示一個選項卡。

(156) Application.Dialogs(xlDialogFormulaGoto).show Range("b2"), True '顯示""引用位置"的默認單元格區域並顯示引用使其出現在窗口左上角(注:內置對話框參數的使用)

(157) Application.CommandBars(1).Controls(2).Controls(16).Execute '執行""定位"話框,相當於選擇菜單""編輯——定位"命令

(158) Application.Transpose(Array(""Sun","Mon","Tur","Wed","Thu","Fri","Sat")) '返回一個垂直的數組

(159) Application.Version '返回使用的 Excel 版本號

(160) Application.Cursor = xlNorthwestArrow '設置光標形狀爲北西向箭頭
Application.Cursor = xlIBeam '設置光標形狀爲Ⅰ字形
Application.Cursor = xlWait '設置光標形狀爲沙漏(等待)形
Application.Cursor = xlDefault '恢復光標的默認設置

(161) Application.WindowState '返回窗口當前的狀態
Application.WindowState = xlMinimized '窗口最小化
Application.WindowState = xlMaximized '窗口最大化
Application.WindowState = xlNormal '窗口正常狀態

(162) Application.UsableHeight '獲取當前窗口的高度
Application.UsableWidth '獲取當前窗口的寬度

(163) Application.ActiveCell.Address '返回活動單元格的地址(注:返回的是絕對地址)

(164) Application.ActivePrinter '返回當前打印機的名稱

(165) Application.ActiveSheet.Name '返回活動工作表的名稱

(166) Application.ActiveWindow.Caption '返回活動窗口的標題

(167) Application.ActiveWorkbook.Name '返回活動工作簿的名稱

(168) Application.Selection.Address '返回所選區域的地址

(169) Application.ThisWorkbook.Name '返回當前工作簿的名稱

(170) Application.CalculationVersion '返回 Excel計算引擎版本(右邊四位數字)及 Excel 版本(左邊兩位數字)
 
(171) Application.MemoryFree '以字節爲單位返回Excel允許使用的內存數(不包括已經使用的內存)

(172) Application.MemoryUsed '以字節爲單位返回 Excel 當前使用的內存數

(173) Application.MemoryTotal '以字節爲單位返回 Excel 可以使用的內存數(包括已使用的內存,是MemoryFree和 MemoryUsed 的總和)

(174) Application.OperatingSystem '返回所使用的操作系統的名稱和版本

(175) Application.OrganizationName '返回 Excel產品登記使用的組織機構的名稱

(176) Application.FindFormat '查找的格式種類
Application.ReplaceFormat '替換查找到的內容的格式種類
ActiveSheet.Cells.Replace What:=" "", Replacement:=" "",SearchFormat:=True,ReplaceFormat:=True '替換查找到的格式

(177) Application.Interactive=False '忽略鍵盤或鼠標的輸入

(178) Application.Evaluate("Rate") '若在工作表中定義了常量 0.06 的名稱爲"Rate",則本語句將返回值 0.06

(179) Application.OnUndo ""Undo Option",""Undo Procedure" '選擇 UndoOption 後,將執行 Undo Procedure 過程

*************
* Range對象 *
*************

(180) Range(A1:A10).Value=Application.WorksheetFunction.Transpose(MyArray) '將一個含有 10個元素的數組轉置成垂直方向的工作表單元格區域(A1至 A10)
注:因爲當把一維數組的內容傳遞給某個單元格區域時,該單元格區域中的單元格必須是水平方向的,即含有多列的一行。若必須使用垂直方向的單元格區域,則必須先將數組進行轉置,成爲垂直的。

(181) Range(""A65536").End(xlUp).Row+1 '返回 A 列最後一行的下一行

(182) rng.Range(""A1") '返回區域左上角的單元格

(183) cell.Parent.Parent.Worksheets '訪問當前單元格所在的工作簿

(184) Selection.Font.Bold=Not Selection.Font.Bold '切換所選單元格是否加粗

(185) ActiveSheet.Range("A:B").Sort Key1:=Columns("B"), Key2:=Columns("A"), Header:=xlYes '兩個關鍵字排序,相鄰兩列,B列爲主關鍵字,A 列爲次關鍵字,升序排列

(186) cell.Range(""A1").NumberFormat '顯示單元格或單元格區域中的第一個單元格的數字格式

(187) cell.Range(""A1").HasFormula '檢查單元格或單元格區域中的第一個單元格是否含有公式
或 cell.HasFormula '工作表中單元格是否含有公式

(188) Cell.EntireColumn '單元格所在的整列
Cell.EntireRow '單元格所在的整行

(189) rng.Name.Name '顯示 rng區域的名稱

(190) rng.Address '返回 rng 區域的地址

(191) cell.Range(""A1").Formula '返回包含在 rng區域中左上角單元格中的公式。
注:若在一個由多個單元格組成的範圍內使用 Formula 屬性,會得到錯誤;若單元格中沒有公式,會得到一個字符串,在公式欄中顯示該單元格的值。

(192) Range(""D5:D10").Cells(1,1) '返回單元格區域 D5:D10 中左上角單元格

(193) ActiveCell.Row '活動單元格所在的行數
ActiveCell.Column '活動單元格所在的列數

(194) Range("A1:B1").HorizontalAlignment = xlLeft '當前工作表中的單元格區域數據設置爲左對齊

(195) ActiveSheet.Range(""A2:A10").NumberFormat="#,##0" '設置單元格區域 A2至 A10中數值格式
 
(196) rng.Replace "" "","0"  '用 0替換單元格區域中的空單元格

************************
* Collection 與 object *
************************

(197) Dim colMySheets As New Collection
Public colMySheets As New Collection  '聲明新的集合變量

(198) Set MyRange=Range(""A1:A5") '創建一個名爲 MyRange 的對象變量

(199) <object>.Add Cell.Value CStr(Cell.Value) '向集合中添加惟一的條目(即將重複的條目忽略)

***************
* Windows API *
***************

(200) Declare Function GetWindowsDirectoryA Lib ""kernel32" (ByVal lpBuffer As String,ByVal nSize As Long) As Long 'API 函數聲明。返回安裝 Windows 所在的目錄名稱,調用該函數後,安裝 Windows 的目錄名稱將在第一個參數 lpBuffer中,該目錄名稱的字符串長度包含在第二個參數 nSize 中

****************************************************************
* (By fanjy in 2006-6-24) 收藏於Excel吧 http://www.excelba.com *
****************************************************************

**************
* VBA 語句集 *
* (第 3 輯)  *
**************

*******************************************************************************************
* 前面已經推出了兩輯VBA 語句集,共有200 句VBA 常用代碼及代碼功能的簡要解釋。根據前階段在學 *
* 習VBA 過程中總結歸納的成果,特彙編了VBA 語句集第3 輯,供大家在學習VBA編程時參考。其實,    *
* 您可以在VBE編輯器中將這些語句進行測試,以體驗其作用或效果。                              *
* VBA語句集的特點是,一句VBA代碼,後面配有代碼功能簡要的說明或解釋。                        *
* 每輯100句,儘可能收錄所有在程序中所要用到的代碼。                                        *
*******************************************************************************************

(201) Set objExcel = CreateObject("Excel.Application")objExcel.Workbooks.Add '創建Excel 工作簿

(202) Application.ActivateMicrosoftApp xlMicrosoftWord '開啓Word應用程序

(203) Application.TemplatesPath '獲取工作簿模板的位置

(204) Application.Calculation = xlCalculationManual '設置工作簿手動計算
Application.Calculation = xlCalculationAutomatic '工作簿自動計算

(205) Worksheets(1).EnableCalculation = False '不對第一張工作表自動進行重算

(206) Application.CalculateFull '重新計算所有打開的工作簿中的數據

(207) Application.RecentFiles.Maximum = 5 '將最近使用的文檔列表數設爲5

(208) Application.RecentFiles(4).Open '打開最近打開的文檔中的第4個文檔

(209)  Application.OnTime DateSerial(2006,6,6)+TimeValue(""16:16:16"),""BaoPo"  '在2006年6月6日的16:16:16開始運行BaoPo過程

(210) Application.Speech.Speak ("Hello" & Application.UserName) '播放聲音,並使用用戶的姓名問候用戶

(211) MsgBox Application.PathSeparator '獲取"/"號

(212) MsgBox Application.International(xlCountrySetting) '返回應用程序當前所在國家的設置信息

(213) Application.AutoCorrect.AddReplacement "葛洲壩", "三峽" '自動將在工作表中進行輸入的"葛洲壩"更正爲"三峽"

(214) Beep '讓計算機發出聲音

(215) Err.Number '返回錯誤代碼

(216) MsgBox IMEStatus '獲取輸入法狀態

(217) Date = #6/6/2006#Time = #6:16:16 AM# '將系統時間更改爲2006年6月6日上午6時16分16秒

(218) Application.RollZoom = Not Application.RollZoom '切換是否能利用鼠標中間的滑輪放大/縮小工作表

(219) Application.ShowWindowsInTaskba = True '顯示任務欄中的窗口,即各工作簿佔用各自的窗口

(220) Application.DisplayScrollBars = True '顯示窗口上的滾動條

(221) Application.DisplayFormulaBar = Not Application.DisplayFormulaBar '切換是否顯示編輯欄

(222) Application.Dialogs(xlDialogPrint).Show '顯示打印內容對話框

(223) Application.MoveAfterReturnDirection = xlToRight '設置按Enter鍵後單元格的移動方向向右

(224) Application.FindFile '顯示打開對話框

(225) ThisWorkbook.FollowHyperlink http://fanjy.blog.excelhome.net  '打開超鏈接文檔,呵呵,作者的Blog
ThisWorkbook.FollowHyperlink http://www.excelba.com                 '偶的小站*~_~*

(226) ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly '將當前工作簿設置爲只讀

(227) ActiveWorkbook.AddToFavorites '將當前工作簿添加到收藏夾文件夾中

(228) ActiveSheet.CheckSpelling '在當前工作表中執行"拼寫檢查"

(229) ActiveSheet.Protect userinterfaceonly:=True '保護當前工作表

(230) ActiveSheet.PageSetup.LeftHeader = ThisWorkbook.FullName '在當前工作表的左側頁眉處打印出工作簿的完整路徑和文件名

(231) Worksheets("Sheet1").Range("A1:G37").Locked = FalseWorksheets("Sheet1").Protect
'解除對工作表Sheet1中A1:G37區域單元格的鎖定
'以便當該工作表受保護時也可對這些單元格進行修改

(232) Worksheets("Sheet1").PrintPreview '顯示工作表sheet1的打印預覽窗口

(233) ActiveSheet.PrintPreview Enablechanges:=False '禁用顯示在Excel 的""打印預覽"窗口中的""設置"和""頁邊距"按鈕

(234) ActiveSheet.PageSetup.PrintGridlines = True '在打印預覽中顯示網格線
ActiveSheet.PageSetup.PrintHeadings = True '在打印預覽中顯示行列編號

(235) ActiveSheet.ShowDataForm '開啓數據記錄單

(236) Worksheets("Sheet1").Columns("A").Replace What:="SIN", Replacement:="COS", SearchOrder:=xlByColumns, MatchCase:=True '將工作表sheet1中A列的SIN替換爲COS

(237) Rows(2).Delete '刪除當前工作表中的第2行
Columns(2).Delete '刪除當前工作表中的第2列

(238) ActiveWindow.SelectedSheets.VPageBreaks.Add before:=ActiveCell '在當前單元格左側插入一條垂直分頁符
ActiveWindow.SelectedSheets.HPageBreaks.Add before:=ActiveCell '在當前單元格上方插入一條垂直分頁符

(239) ActiveWindow.ScrollRow = 14 '將當前工作表窗口滾動到第14行
ActiveWindow.ScrollColumn = 13 '將當前工作表窗口滾動到第13列

(240) ActiveWindow.Close '關閉當前窗口

(241) ActiveWindow.Panes.Count '獲取當前窗口中的窗格數

(242) Worksheets("sheet1").Range("A1:D2").CreateNames Top:=True '將A2至D2的單元格名稱設定爲A1到D1單元格的內容

(243) Application.AddCustomList listarray:=Range("A1:A8") '自定義當前工作表中單元格A1至A8中的內容爲自動填充序列

(244) Worksheets("sheet1").Range("A1:B2").CopyPicture xlScreen, xlBitmap '將單元格A1至B2的內容複製成屏幕快照

(245) Selection.Hyperlinks.Delete '刪除所選區域的所有鏈接
Columns(1).Hyperlinks.Delete '刪除第1列中所有的鏈接
Rows(1).Hyperlinks.Delete '刪除第1行中所有的鏈接
Range("A1:Z30").Hyperlinks.Delete '刪除指定範圍所有的鏈接

(246) ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, Address:="C:/Windows/System32/Calc.exe", ScreenTip:="  按下我, 就會開啓Windows  計算器", TextToDisplay:="Windows 計算器" '在活動單元格中設置開啓Windows計算器鏈接

(247) ActiveCell.Value = Shell("C:/Windows/System32/Calc.exe", vbNormalFocus) '開啓Windows計算器

(248) ActiveSheet.Rows(1).AutoFilter '打開自動篩選。若再運行一次,則關閉自動篩選

(249) Selection.Autofilter '開啓/關閉所選區域的自動篩選

(250) ActiveSheet.ShowAllData '關閉自動篩選

(251) ActiveSheet.AutoFilterMode '檢查自動篩選是否開啓,若開啓則該語句返回True

(252) ActiveSheet.Columns("A").ColumnDifferences(Comparison:=ActiveSheet. Range("A2")).Delete '在A列中找出與單元格A2內容不同的單元格並刪除

(253) ActiveSheet.Range("A6").ClearNotes '刪除單元格A6中的批註,包括聲音批註和文字批註
 
(254) ActiveSheet.Range("B8").ClearComments '刪除單元格B8中的批註文字

(255) ActiveSheet.Range("A1:D10").ClearFormats '清除單元格區域A1至D10中的格式

(256) ActiveSheet.Range("B2:D2").BorderAround ColorIndex:=5, Weight:=xlMedium, LineStyle:=xlDouble '將單元格B2至D2區域設置爲藍色雙線

(257) Range("A1:B2").Item(2, 3)或Range("A1:B2")(2, 3) '引用單元格C2的數據
Range("A1:B2")(3) '引用單元格A2

(258) ActiveSheet.Cells(1, 1).Font.Bold = TRUE '設置字體加粗
ActiveSheet.Cells(1, 1).Font.Size = 24 '設置字體大小爲24磅
ActiveSheet.Cells(1, 1).Font.ColorIndex = 3 '設置字體顏色爲紅色
ActiveSheet.Cells(1, 1).Font.Italic = TRUE '設置字體爲斜體
ActiveSheet.Cells(1, 1).Font.Name = "Times New Roman" '設置字體類型
ActiveSheet.Cells(1, 1).Interior.ColorIndex = 3 '將單元格的背景色設置爲紅色

(259) ActiveSheet.Range("C2:E6").AutoFormat Format:=xlRangeAutoFormatColor3 '將當前工作表中單元格區域C2至E6格式自動調整爲彩色3格式

(260) Cells.SpecialCells(xlCellTypeLastCell) '選中當前工作表中的最後一個單元格

(261) ActiveCell.CurrentArray.Select '選定包含活動單元格的整個數組單元格區域.假定該單元格在數據單元格區域中

(262) ActiveCell.NumberFormatLocal = "0.000; [紅色] 0.000" '將當前單元格數字格式設置爲帶3位小數,若爲負數則顯示爲紅色

(263) IsEmpty (ActiveCell.Value) '判斷活動單元格中是否有值

(264) ActiveCell.Value = LTrim(ActiveCell.Value) '刪除字符串前面的空白字符

(265) Len(ActiveCell.Value) '獲取活動單元格中字符串的個數

(266) ActiveCell.Value = UCase(ActiveCell.Value) '將當前單元格中的字符轉換成大寫

(267) ActiveCell.Value = StrConv(ActiveCell.Value, vbLowerCase) '將活動單元格中的字符串轉換成小寫

(268) ActiveSheet.Range("C1").AddComment '在當前工作表的單元格C1中添加批註

(269) Weekday(Date) '獲取今天的星期,以數值表示,1-7分別對應星期日至星期六

(270) ActiveSheet.Range("A1").AutoFill Range(Cells(1, 1), Cells(10, 1)) '將單元格A1的數值填充到單元格A1至A10區域中

(271) DatePart("y", Date) '獲取今天在全年中的天數

(272) ActiveCell.Value = DateAdd("yyyy", 2, Date) '獲取兩年後的今天的日期

(273) MsgBox WeekdayName(Weekday(Date)) '獲取今天的星期數

(274) ActiveCell.Value = Year(Date) '在當前單元格中輸入今年的年份數
ActiveCell.Value = Month(Date) '在當前單元格中輸入今天所在的月份數
ActiveCell.Value = Day(Date) '在當前單元格中輸入今天的日期數

(275) ActiveCell.Value = MonthName(1) '在當前單元格中顯示月份的名稱,本句爲顯示"一月"

(276) ActiveCell.Value = Hour(Time) '在當前單元格中顯示現在時間的小時數
ActiveCell.Value = Minute(Time) '在當前單元格中顯示現在時間的分鐘數
ActiveCell.Value = Second(Time) '在當前單元格中顯示現在時間的秒數

(277) ActiveSheet.Shapes(1).Delete '刪除當前工作表中的第一個形狀

(278) ActiveSheet.Shapes.Count '獲取當前工作表中形狀的數量

(279) ActiveSheet.Shapes(1).TextEffect.ToggleVerticalText '改變當前工作表中第一個藝術字的方向

(280) ActiveSheet.Shapes(1).TextEffect.FontItalic = True '將當前工作表中第一個藝術字的字體設置爲斜體
 
(281) ActiveSheet.Shapes.AddTextEffect(msoTextEffect21, "三峽", "Arial Black", 22#, msoFalse, msoFalse, 66#, 80).Select '在當前工作表中創建一個名爲"三峽"的藝術字並對其進行格式設置和選中

(282) ActiveSheet.Shapes.AddLine(BeginX:=10, BeginY:=10, EndX:=250, EndY:=100).Select '在當前工作表中以(10,10)爲起點(250,100)爲終點畫一條直線並選中

(283) ActiveSheet.Shapes.AddShape(Type:=msoShapeRightTriangle, Left:=70, Top:=40, Width:=130, Height:=72).Select '在當前工作表中畫一個左上角在(70,40),寬爲130高爲72的三角形並選中

(284) ActiveSheet.Shapes.AddShape(Type:=msoShapeRectangle, Left:=70, Top:=40, Width:=130, Height:=72).Select '在當前工作表中畫一個以點(70,40)爲起點,寬130高72的矩形並選中

(285) ActiveSheet.Shapes.AddShape(Type:=msoShapeOval, Left:=70, Top:=40, Width:=130, Height:=72).Select '在當前工作表中畫一個左上角在(70,40),寬爲130高爲72的橢圓

(286) ActiveSheet.Shapes(1).Line.ForeColor.RGB = RGB(0, 0, 255) '將當前工作表中第一個形狀的線條顏色變爲藍色

(287) ActiveSheet.Shapes(2).Fill.ForeColor.RGB = RGB(255, 0, 0) '將當前工作表中第2個形狀的前景色設置爲紅色

(288) ActiveSheet.Shapes(1).Rotation = 20 '將當前工作表中的第1個形狀旋轉20度

(289) Selection.ShapeRange.Flip msoFlipHorizontal '將當前選中的形狀水平翻轉
Selection.ShapeRange.Flip msoFlipVertical '將當前選中的形狀垂直翻轉

(290) Selection.ShapeRange.ThreeD.SetThreeDFormat msoThreeD1 '將所選取的形狀設置爲第1種立體樣式

(291) ActiveSheet.Shapes(1).ThreeD.Depth = 20 '將當前工作表中第一個立體形狀的深度設置爲20

(292) ActiveSheet.Shapes(1).ThreeD.ExtrusionColor.RGB = RGB(0, 0, 255) '將當前工作表中第1個立體形狀的進深部分的顏色設爲藍色

(293) ActiveSheet.Shapes(1).ThreeD.RotationX = 60 '將當前工作表中的第1個立體形狀沿X軸旋轉60度
ActiveSheet.Shapes(1).ThreeD.RotationY = 60 '將當前工作表中的第1個立體形狀沿Y軸旋轉60度

(294) Selection.ShapeRange.ThreeD.Visible = msoFalse '將所選擇的立體形狀轉換爲平面形狀

(295) Selection.ShapeRange.ConnectorFormat.BeginDisconnect '在形狀中讓指定的連接符起點脫離原來所連接的形狀

(296) ActiveSheet.Shapes(1).PickUp '複製當前工作表中形狀1的格式

(297) ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 260, 160, 180, 30). TextFrame.Characters.Text = "fanjy.blog.excelhome.net" '在工作簿中新建一個文本框並輸入內容

(298) ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, 20, 80, 100, 200). TextFrame.Characters.Text = "fanjy.blog.excelhome.net" '在當前工作表中建立一個水平文本框並輸入內容

(299) ActiveSheet.Shapes.AddPicture "d:/sx.jpg", True, True, 60, 20, 400, 300 '在當前工作表中插入一張d盤中名爲sx 的圖片

(300) ActiveChart.ApplyCustomType xl3DArea '將當前圖表類型改爲三維面積圖

**************************************************************
* By fanjy in 2006-10-7 收藏於Excel吧 http://www.excelba.com *
**************************************************************

發佈了34 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章