*******************************************************
定制模塊行為
(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列數(shù)據(jù)移至B列,原B列及以后的數(shù)據(jù)相應后移
ActiveSheet.Columns("B").Cut
ActiveSheet.Columns("E").Insert ‘以上兩句將B列數(shù)據(jù)移至D列,原C列和D列數(shù)據(jù)相應左移一列
(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數(shù)據(jù)為粗體
(123) ThisWorkbook.Worksheets("Sheet1").Rows(1).Hidden = True ‘將工作表Sheet1中的行1隱藏
ActiveCell.EntireRow.Hidden = True ‘將當前工作表中活動單元格所在的行隱藏
注:同樣可用于列。
(124) ActiveSheet.Range(“A:A”).EntireColumn.AutoFit ‘自動調(diào)整當前工作表A列列寬
(125) ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues) ‘選中當前工作表中常量和文本單元格
ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues) ‘選中當前工作表中常量和文本及錯誤值單元格
*******************************************************
公式與函數(shù)
(126) Application.MacroOptions Macro:=”SumPro”,Category:=4 ‘將自定義的SumPro函數(shù)指定給Excel中的“統(tǒng)計函數(shù)”類別
(127) Application.MacroOptions Macro:=”SumPro”, _
Description:=”First Sum,then Product” ‘為自定義函數(shù)SumPro進行了功能說明
(128) Application.WorksheetFunction.CountA(Range(“A:A”))+1 ‘獲取A列的下一個空單元格
(129) WorksheetFunction.CountA(Cell.EntireColumn) ‘返回該單元格所在列非空單元格的數(shù)量
WorksheetFunction.CountA(Cell.EntireRow) ‘返回該單元格所在行非空單元格的數(shù)量
(130) WorksheetFunction.CountA(Cells) ‘返回工作表中非空單元格數(shù)量
(131) ActiveSheet.Range(“A20:D20”).Formula=“=Sum(R[-19]C:R[-1]C”’對A列至D列前19個數(shù)值求和
*******************************************************
圖表
(132) ActiveWindow.Visible=False
或 ActiveChart.Deselect ‘使圖表處于非活動狀態(tài)
(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 ‘將數(shù)值調(diào)節(jié)鈕控件的值改為0
(138) TextBox1.Text=SpinButton1.Value ‘將數(shù)值調(diào)節(jié)鈕控件的值賦值給文本框控件
SpinButton1.value="/Val(TextBox1.Text)" ‘將文本框控件值賦給數(shù)值調(diào)節(jié)鈕控件
CStr(SpinButton1.Value)=TextBox1.Text ‘數(shù)值調(diào)節(jié)鈕控件和文本框控件相比較
(139) UserForm1.Controls.Count ‘顯示窗體UserForm1上的控件數(shù)目
(140) ListBox1.AddItem “Command1” ‘在列表框中添加Command1
(141) ListBox1.ListIndex ‘返回列表框中條目的值,若為-1,則表明未選中任何列表框中的條目
(142) RefEdit1.Text ‘返回代表單元格區(qū)域地址的文本字符串
RefEdit1.Text=ActiveWindow.RangeSelection.Address ‘初始化RefEdit控件顯示當前所選單元格區(qū)域
Set FirstCell=Range(RefEdit1.Text).Range(“A1”) ‘設置某單元格區(qū)域左上角單元格
(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中的數(shù)據(jù)添加到列表框中
ListBox1.List=Product ‘將一個名為Product數(shù)組的值添加到ListBox1中
ListBox1.RowSource=”Sheet2!SumP” ‘使用工作表Sheet2中的SumP區(qū)域的值填充列表框
(146) ListBox1.Selected(0) ‘選中列表框中的第一個條目(注:當列表框允許一次選中多個條目時,必須使用Selected屬性)
(147) ListBox1.RemoveItem ListBox1.ListIndex ‘移除列表框中選中的條目
*******************************************************
對象
Application對象
(148) Application.UserName ‘返回應用程序的用戶名
(149) Application.Caller ‘返回代表調(diào)用函數(shù)的單元格
(150) Application.Caller.Parent.Parent ‘返回調(diào)用函數(shù)的工作簿名稱
(151) Application.StatusBar=”請等待……” ‘將文本寫到狀態(tài)欄
Application.StatusBar=”請等待……” & Percent & “% Completed” ‘更新狀態(tài)欄文本,以變量Percent代表完成的百分比
Application.StatusBar=False ‘將狀態(tài)欄重新設置成正常狀態(tài)
(152) Application.Goto Reference:=Range(“A1:D4”) ‘指定單元格區(qū)域A1至D4,等同于選擇“編輯——定位”,指定單元格區(qū)域為A1至D4,不會出現(xiàn)“定位”對話框
(153) Application.Dialogs(xlDialogFormulaGoto).Show ‘顯示“定位”對話框,但定位條件按鈕無效
(154) Application.Dialogs(xlDialogSelectSpecial).Show ‘顯示“定位條件”對話框
(155) Application.Dialogs(xlDialogFormatNumber).show ‘顯示“單元格格式”中的“數(shù)字”選項卡
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 ‘顯示“引用位置”的默認單元格區(qū)域并顯示引用使其出現(xiàn)在窗口左上角(注:內(nèi)置對話框參數(shù)的使用)
(157) Application.CommandBars(1).Controls(2).Controls(16).Execute ‘執(zhí)行“定位”話框,相當于選擇菜單“編輯——定位”命令
(158) Application.Transpose(Array(“Sun”,”Mon”,”Tur”,”Wed”,”Thu”,”Fri”,”Sat”)) ‘返回一個垂直的數(shù)組
(159) Application.Version ‘返回使用的Excel版本號
(160) Application.Cursor = xlNorthwestArrow ‘設置光標形狀為北西向箭頭
Application.Cursor = xlIBeam ‘設置光標形狀為Ⅰ字形
Application.Cursor = xlWait ‘設置光標形狀為沙漏(等待)形
Application.Cursor = xlDefault ‘恢復光標的默認設置
(161) Application.WindowState ‘返回窗口當前的狀態(tài)
Application.WindowState = xlMinimized ‘窗口最小化
Application.WindowState = xlMaximized ‘窗口最大化
Application.WindowState = xlNormal ‘窗口正常狀態(tài)
(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 ‘返回所選區(qū)域的地址
(169) Application.ThisWorkbook.Name ‘返回當前工作簿的名稱
(170) Application.CalculationVersion ‘返回Excel計算引擎版本(右邊四位數(shù)字)及Excel版本(左邊兩位數(shù)字)
(171) Application.MemoryFree ‘以字節(jié)為單位返回Excel允許使用的內(nèi)存數(shù)(不包括已經(jīng)使用的內(nèi)存)
(172) Application.MemoryUsed ‘以字節(jié)為單位返回Excel當前使用的內(nèi)存數(shù)
(173) Application.MemoryTotal ‘以字節(jié)為單位返回Excel可以使用的內(nèi)存數(shù)(包括已使用的內(nèi)存,是MemoryFree和MemoryUsed的總和)
(174) Application.OperatingSystem ‘返回所使用的操作系統(tǒng)的名稱和版本
(175) Application.OrganizationName ‘返回Excel產(chǎn)品登記使用的組織機構的名稱
(176) Application.FindFormat ‘查找的格式種類
Application.ReplaceFormat ‘替換查找到的內(nèi)容的格式種類
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后,將執(zhí)行Undo Procedure過程
*******************************************************
Range對象
(180) Range(A1:A10).value="/Application.WorksheetFunction.Transpose(MyArray)" ‘將一個含有10個元素的數(shù)組轉置成垂直方向的工作表單元格區(qū)域(A1至A10)
注:因為當把一維數(shù)組的內(nèi)容傳遞給某個單元格區(qū)域時,該單元格區(qū)域中的單元格必須是水平方向的,即含有多列的一行。若必須使用垂直方向的單元格區(qū)域,則必須先將數(shù)組進行轉置,成為垂直的。
(181) Range(“A65536”).End(xlUp).Row+1 ‘返回A列最后一行的下一行
(182) rng.Range(“A1”) ‘返回區(qū)域左上角的單元格
(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 ‘顯示單元格或單元格區(qū)域中的第一個單元格的數(shù)字格式
(187) cell.Range(“A1”).HasFormula ‘檢查單元格或單元格區(qū)域中的第一個單元格是否含有公式
或cell.HasFormula ‘工作表中單元格是否含有公式
(188) Cell.EntireColumn ‘單元格所在的整列
Cell.EntireRow ‘單元格所在的整行
(189) rng.Name.Name ‘顯示rng區(qū)域的名稱
(190) rng.Address ‘返回rng區(qū)域的地址
(191) cell.Range(“A1”).Formula ‘返回包含在rng區(qū)域中左上角單元格中的公式。
注:若在一個由多個單元格組成的范圍內(nèi)使用Formula屬性,會得到錯誤;若單元格中沒有公式,會得到一個字符串,在公式欄中顯示該單元格的值。
(192) Range(“D5:D10”).Cells(1,1) ‘返回單元格區(qū)域D5:D10中左上角單元格
(193) ActiveCell.Row ‘活動單元格所在的行數(shù)
ActiveCell.Column ‘活動單元格所在的列數(shù)
(194) Range("A1:B1").HorizontalAlignment = xlLeft ‘當前工作表中的單元格區(qū)域數(shù)據(jù)設置為左對齊
(195) ActiveSheet.Range(“A2:A10”).NumberFormat=”#,##0” ‘設置單元格區(qū)域A2至A10中數(shù)值格式
(196) rng.Replace “ “,”0” ‘用0替換單元格區(qū)域中的空單元格
*******************************************************
Collection與object
(197) Dim colMySheets As New Collection
Public colMySheets As New Collection ‘聲明新的集合變量
(198) Set MyRange=Range(“A1:A5”) ‘創(chuàng)建一個名為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函數(shù)聲明。返回安裝Windows所在的目錄名稱,調(diào)用該函數(shù)后,安裝Windows的目錄名稱將在第一個參數(shù)lpBuffer中,該目錄名稱的字符串長度包含在第二個參數(shù)nSize中