Excel VBA 語句集(2)

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 ‘
移除列表框中選中的條目

147-1TextBox1.Text = VBA.UCase$(TextBox1.Text)’TEXTBOX裏的字母自動變成大寫
*******************************************************
對象
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”) ‘
指定單元格區域A1D4,等同於選擇編輯——定位,指定單元格區域爲A1D4,不會出現定位對話框
(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可以使用的內存數(包括已使用的內存,MemoryFreeMemoryUsed的總和)
(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個元素的數組轉置成垂直方向的工作表單元格區域(A1A10)
注:因爲當把一維數組的內容傳遞給某個單元格區域時,該單元格區域中的單元格必須是水平方向的,即含有多列的一行。若必須使用垂直方向的單元格區域,則必須先將數組進行轉置,成爲垂直的。
(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” ‘
設置單元格區域A2A10中數值格式
(196) rng.Replace “ “,”0”  ‘
0替換單元格區域中的空單元格
*******************************************************
Collectionobject
(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)

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