close

VBA語句集 (第1輯)

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



工作簿
(8)創建一個新的工作簿
      Workbooks.Add()
(9)
啟動名為book1的工作簿
      Workbooks("book1.xls").Activate
(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)
Sheet1命名為Sum
      Sheets(Sheet1).Name = "Sum"
(21)
添加一個新工作表在第一工作表前
      ThisWorkbook.Sheets.Add Before:=Worksheets(1)
(22)
將當前工作表移至工作表的最後
      ActiveSheet.Move After:=ActiveWorkbook. _
           Sheets(ActiveWorkbook.Sheets.Count)
(23)
同時選擇工作表1和工作表2
      Worksheets(Array("sheet1", "sheet2")).Select
(24)
刪除工作表1
      Sheets("sheet1").Delete
     

      Sheets(1).Delete
(25)
獲取工作表i的名稱
      ActiveWorkbook.Sheets(i).Name
(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)
清除活動工作表上單格A1中的內容
      Range("A1").ClearContents
     
清除選定區域內容
      Selection.ClearContents
     
徹底清除A1D4單格區域的內容,包括格式
      Range("A1:D4").Clear
(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)
複製單格A1,粘貼到單格B1
      Range("A1").Copy Range("B1")
     
將單格區域複製到單格F1開始的區域中
      Range("A1:D8").Copy Range("F1")
     
剪切單格區域A1D8,複製到單格F1開始的區域中
      Range("A1:D8").Cut Range("F1")
     
複製包含A1的單格區域到工作表2中以A1起始的單格區域中
      Range("A1").CurrentRegion.Copy Sheets("Sheet2").Range("A1")
註:CurrentRegion屬性等價於定位命令,由一個矩形單格塊組成,周圍是一個或多個空行或列
(39)將值XX輸入到所選單格區域中
      ActiveWindow.RangeSelection.Value = XX
(40)
活動視窗中選擇的單格數
      ActiveWindow.RangeSelection.Count
(41)
當前選中區域的單格數
      Selection.Count
(42)
返回單格中超連結的地址並賦值
      GetAddress = Replace(Hyperlinkcell.Hyperlinks(1).Address, "mailto:", "")
(43)
檢查單格A1的文本顏色並返回顏色索引
      TextColor = Range("A1").Font.ColorIndex
     
獲取單格A1背景色
      Range("A1").Interior.ColorIndex
(44)
返回當前工作表的單格數
      Cells.Count
(45)
啟動當前活動單格下方3行,向右4列的單格
      Selection.Range("E4").Select
(46)
引單格C5
      Cells.Item(5,"C")
     
引單格C5
      Cells.Item(5,3)
(47)
指定單格F5
      Range("A1").Offset(RowOffset:=4,ColumnOffset:=5)
     

      Range("A1").Offset(4, 5)
(48)
創建B3D13區域
      Range("B3").Resize(RowSize:=11,ColumnSize:=3)
      Rnage("B3").Resize(11,3)
(49)
Data區域擴充2
      Range("Data").Resize(,2)
(50)
Data1Data2區域連接
      Union(Range("Data1"),Range("Data2"))
(51)
返回Data1Data2區域的交叉區域
      Intersect(Range("Data1"),Range("Data2"))
(52)
單格區域Data中的單格數
      Range("Data").Count
     
單格區域Data中的列數
      Range("Data").Columns.Count
     
單格區域Data中的行數
      Range("Data").Rows.Count
(53)
當前選中的單格區域中的列數
      Selection.Columns.Count
     
當前選中的單格區域中的行數
      Selection.Rows.Count
(54)
選中的單格區域所包含的區域數
      Selection.Areas.Count
(55)
獲取單格區域中使用的第一行的行號
      ActiveSheet.UsedRange.Row
(56)
獲取單格區域Rng左上角單格所在列編號
      Rng.Column
(57)
在活動工作表中返回所有符合條件格式設置的區域
      ActiveSheet.Cells.SpecialCells (xlCellTypeAllFormatConditions)
(58)
關閉由於執行自動篩選命令產生的第3個欄位的下拉清單
      Range("A1").AutoFilter Field:=3, VisibleDropDown:=False
 



名稱
(59)命名A1C3區域為computer
      Range("A1
C3").Name = "computer"
     
命名局部變數,即Sheet1上區域D1E6book
     

      Range("D1E6").Name = "Sheet1!book"
     
將區域computer重命名為robot
     

      Names("computer").Name = "robot"
(60)
刪除名稱
      Names("book").Delete
(61)
動態命名列
      Names.Add Name:="ContentList", _
                RefersTo:="=OFFSET(Sheet1!A2,0,0,COUNTA(Sheet2!
A:A))"
(62)
命名字串CompanyCar
      Names.Add Name:="Company", RefersTo:="CompanyCar"
(63)
將數字123456命名為Total。注意數位不能加引號,否則就是命名字串了。
      Names.Add Name:="Total", RefersTo:=123456
(64)
將陣列ArrayNum命名為MyArray
      Names.Add Name:="MyArray", RefersTo:=ArrayNum
(65)
將名稱隱藏
      Names.Add Name:="ProduceNum", RefersTo:="=B1", Visible:=False
(66)
返回名稱字串
      ActiveWorkbook.Names("Com").Name
 



公式與函數
(67)使用工作表函數檢查A1單格中的資料是否為數位
      Application.WorksheetFunction.IsNumber ("A1")
(68)
      Range("A:A").Find(Application.WorksheetFunction.Max(Range("A:A"))).Activate
     
啟動單格區域A列中最大值的單格
      
(69)
在單格中輸入陣列公式。注意必須使用R1C1樣式的運算式
      Cells(8, 8).FormulaArray = "=SUM(R2C[-1]:R[-1]C[-1]*R2C:R[-1]C)"
 



圖表
(70)獲取當前工作表中圖表的個數
      ActiveSheet.ChartObjects.Count
(71)
選中當前工作表中圖表Chart1
      ActiveSheet.ChartObjects("Chart1").Select
(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)
將圖表1導出到C盤上並命名為MyChart.gif
      Worksheets("Sheet1").ChartObjects(1).Chart. _
                Export Filename:="C
MyChart.gif", FilterName:="GIF"
 



表單
(80)訊息方塊中顯示消息Hello
      MsgBox "Hello!"
(81)
在訊息方塊中點擊""按鈕,則Ans值為vbYes;點擊""按鈕,則Ans值為vbNo
      Ans = MsgBox("Continue?", vbYesNo)
     
返回值不為"",則退出
      If MsgBox("Continue?", vbYesNo) <> vbYes Then Exit Sub
(82)
使用常量的組合,賦值組Config變數,並設置第二個按鈕為缺省按鈕
      Config = vbYesNo + vbQuestion + vbDefaultButton2
(83)
在訊息方塊中強制換行,可用vbCrLf代替vbNewLine
      MsgBox "This is the first line." & vbNewLine & "Second line."
(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)
在用戶表單中顯示圖形
      Picture1.Picture = LoadPicture("C:1.JPG")
(90)
將表單設置為無模式狀態
      UserForm1.Show 0
     

      UserForm1.Show vbModeless
(91)
表單高度為當前活動視窗高度的0.88
      Me.Height = Int(0.88 * ActiveWindow.Height)
     
表單寬度為當前活動視窗高度的0.88
      Me.Width = Int(0.88 * ActiveWindow.Width)

 



事件
(92)禁用所有事件
      Application.EnableEvents = False
     
啟用所有事件
      Application.EnableEvents = True
註:不適用於用戶表單控制項觸發的事件
 



對象
(93)創建一個Excel工作表物件
      Set ExcelSheet = CreateObject("Excel.Sheet")
     
設置 Application 物件使 Excel 可見
      ExcelSheet.Application.Visible = True
     
在表格的第一個單元中輸入文本
      ExcelSheet.Application.Cells(1, 1).Value = "Data"
     
將該表格保存到C:test.xls 目錄
      ExcelSheet.SaveAs "C:TEST.XLS"
     
關閉 Excel
      ExcelSheet.Application.Quit
     
釋放該物件變數
      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)
創建一個 Dictionary 物件變數
      Set d = CreateObject(Scripting.Dictionary)
(97)
為物件變數添加關鍵字和條目
      d.Add "a", "Athens"
 



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

 

 

 

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)
返回當前工作簿的讀/寫值(False)
       ThisWorkbook.ReadOnly
       ActiveWorkbook.ReadOnly
(110)
返回工作簿的存儲值(若已保存則為False)
       ThisWorkbook.Saved
      ActiveWorkbook.Saved
(111)
隱藏工作簿
      Application.Visible = False
     
顯示工作簿
      Application.Visible = True
     
:可與用戶表單配合使用,即在打開工作簿時將工作簿隱藏,只顯示用戶表單.可設置控制按鈕控制工作簿可見
 



工作表
(112)A列右側插入列,即插入B
      ActiveSheet.Columns("B").Insert
      ActiveSheet.Columns("E").Cut
     
以上兩句將E列資料移至B列,原B列及以後的資料相應後移
        ActiveSheet.Columns("B").Insert
      ActiveSheet.Columns("B").Cut
     
以上兩句將B列資料移至D列,原C列和D列資料相應左移一列
        ActiveSheet.Columns("E").Insert
(113)
計算當前工作表
      ActiveSheet.Calculate
(114)
正常隱藏工作表,同在Excel功能表中選擇"格式--工作表--隱藏"操作一樣
      ThisWorkbook.Worksheets("sheet1").Visible = xlSheetHidden
     
隱藏工作表,不能通過在Excel功能表中選擇"格式--工作表--取消隱藏"來重新顯示工作表
      ThisWorkbook.Worksheets("sheet1").Visible = xlSheetVeryHidden
     
顯示被隱藏的工作表
      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)
改變工作表的列寬為20
      ThisWorkbook.ActiveSheet.Columns.ColumnWidth = 20
     
將工作表的列寬恢復為標準值
      ThisWorkbook.ActiveSheet.Columns.ColumnWidth = _
                   ThisWorkbook.ActiveSheet.StandardWidth
     
改變工作表列1的寬度為20
      ThisWorkbook.ActiveSheet.Columns(1).ColumnWidth = 20
(120)
改變工作表的行高為10
      ThisWorkbook.ActiveSheet.Rows.RowHeight = 10
     
將工作表的行高恢復為標準值
      ThisWorkbook.ActiveSheet.Rows.RowHeight = _
                   ThisWorkbook.ActiveSheet.StandardHeight
     
改變工作表的行1的高度值設置為10
      ThisWorkbook.ActiveSheet.Rows(1).RowHeight = 10
(121)
當前工作簿中的第一個工作表被啟動
      ThisWorkbook.Worksheets(1).Activate
(122)
設置工作表Sheet1中的行1資料為粗體
      ThisWorkbook.Worksheets("Sheet1").Rows(1).Font.Bold = True
(123)
將工作表Sheet1中的行1隱藏
      ThisWorkbook.Worksheets("Sheet1").Rows(1).Hidden = True
     
將當前工作表中活動單格所在的行隱藏
      ActiveCell.EntireRow.Hidden = True
     
註:同樣可用於列。
(124)自動調整當前工作表A列列寬
      ActiveSheet.Range("A:A").EntireColumn.AutoFit
(125)
選中當前工作表中常量和文本單格
      ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues)
     
選中當前工作表中常量和文本及錯誤值單格
      ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues)
 



公式與函數
(126)將自定義的SumPro函數指定給Excel中的"統計函數"類別
      Application.MacroOptions Macro:="SumPro", Category:=4
(127)
為自定義函數SumPro進行了功能說明
       Application.MacroOptions Macro:="SumPro", _
               Description:="First Sum,then Product"
(128)
獲取A列的下一個空單格
      Application.WorksheetFunction.CountA (Range("A:A")) + 1
(129)
返回該單格所在列非空單格的數量
      WorksheetFunction.CountA (Cell.EntireColumn)
     
返回該單格所在行非空單格的數量
      WorksheetFunction.CountA (Cell.EntireRow)
(130)
返回工作表中非空單格數量
      WorksheetFunction.CountA (Cells)
(131)
A列至D列前19個數值求和
       ActiveSheet.Range("A20:D20").Formula = "=Sum(R[-19]C:R[-1]C"
 


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

       ActiveChart.Deselect
(133)
若選中的為圖表,則該語句為真,否則為假
      TypeName(Selection) = "Chart"
(134)
刪除工作表上所有的ChartObject物件
      ActiveSheet.ChartObjects.Delete
     
刪除當前工作簿中所有的圖表工作表
        ActiveWorkbook.Charts.Delete
 


表單和控制項
(135)添加用戶表單MyForm並顯示
      UserForms.Add(MyForm).Show
(136)
設置文本框獲取輸入焦點
      TextName.SetFocus
(137)
將數值調節鈕控制項的值改為0
      SpinButton1.Value = 0
(138)
將數值調節鈕控制項的值賦值給文本框控制項
      TextBox1.Text = SpinButton1.Value
     
將文本框控制項值賦給數值調節鈕控制項
      SpinButton1.Value = "/Val(TextBox1.Text)"
     
數值調節鈕控制項和文本框控制項相比較
      CStr(SpinButton1.Value)=TextBox1.Text
(139)
顯示表單UserForm1上的控制項數目
      UserForm1.Controls.Count
(140)
在列表框中添加Command1
      ListBox1.AddItem "Command1"
(141)
返回列表框中條目的值,若為-1,則表明未選中任何列表框中的條目
      ListBox1.ListIndex
(142)
返回代表單格區域位址的文本字串
      RefEdit1.Text
     
初始化RefEdit控制項顯示當前所選單格區域
      RefEdit1.Text = ActiveWindow.RangeSelection.Address
     
設置某單格區域左上角單格
      Set FirstCell = Range(RefEdit1.Text).Range("A1")
(143)
等待15秒後運行myProcedure過程
      Application.OnTime Now + TimeValue("00:00:15"), "myProcedure"
(144)
將捲軸控制項的值賦值給ActiveWindow物件的ScrollColumn屬性
      ActiveWindow.ScrollColumn = ScrollBarColumns.Value
     
將捲軸控制項的值賦值給ActiveWindow物件的ScrollRow屬性
      ActiveWindow.ScrollRow = ScrollBarRows.Value
(145)
將單格A1中的資料添加到列表框中
      UserForm1.ListBox1.AddItem Sheets("Sheet1").Cells(1, 1)
     
將一個名為Product陣列的值添加到ListBox1
      ListBox1.List = Product
     
使用工作表Sheet2中的SumP區域的值填充列表框
      ListBox1.RowSource = "Sheet2!SumP"
(146)
選中列表框中的第一個條目(註:當列表框允許一次選中多個條目時,必須使用Selected屬性)
      ListBox1.Selected (0)
(147)
移除列表框中選中的條目
      ListBox1.RemoveItem ListBox1.ListIndex
 


對象
Application對像
(148)返回應用程式的用戶名
      Application.UserName
(149)
返回代表調用函數的單格
      Application.Caller
(150)
返回調用函數的工作簿名稱
      Application.Caller.Parent.Parent
(151)
將文本寫到狀態欄
      Application.StatusBar = "請等待……"
     
更新狀態欄文本,以變數Percent代表完成的百分比
      Application.StatusBar = "請等待……" & Percent & "% Completed"
     
將狀態欄重新設置成正常狀態
      Application.StatusBar = False
(152)
指定單格區域A1D4,等同於選擇"編輯--定位",指定單格區域為A1D4,不會出現"定位"對話方塊
      Application.Goto Reference:=Range("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)
返回使用的Excel版本號
      Application.Version
(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)
返回Excel計算引擎版本(右邊四位元數字)Excel版本(左邊兩位元數字)
      Application.CalculationVersion
(171)
以位元組為單位返回Excel允許使用的記憶體數(不包括已經使用的記憶體)
      Application.MemoryFree
(172)
以位元組為單位返回Excel當前使用的記憶體數
      Application.MemoryUsed
(173)
以位元組為單位返回Excel可以使用的記憶體數(包括已使用的記憶體,MemoryFreeMemoryUsed的總和)
      Application.MemoryTotal
(174)
返回所使用的作業系統的名稱和版本
      Application.OperatingSystem
(175)
返回Excel產品登記使用的組織機構的名稱
      Application.OrganizationName
(176)
查找的格式種類
      Application.FindFormat
     
替換查找到的內容的格式種類
      Application.ReplaceFormat
     
替換查找到的格式
       ActiveSheet.Cells.Replace What:=" ", _
               Replacement:=" ", SearchFormat:=True, ReplaceFormat:=True
(177)
忽略鍵盤或滑鼠的輸入
      Application.Interactive = False
(178)
若在工作表中定義了常量0.06的名稱為"Rate",則本語句將返回值0.06
      Application.Evaluate ("Rate")
(179)
選擇UndoOption後,將執行Undo Procedure過程
      Application.OnUndo "Undo Option", "Undo Procedure"
 


Range對象
(180)將一個含有10個元素的陣列轉置成垂直方向的工作表單格區域(A1A10)
      Range(A1:A10).value="/Application.WorksheetFunction.Transpose(MyArray)"
     
註:因為當把一維陣列的內容傳遞給某個單格區域時,該單格區域中的單格必須是水準方向的,即含有多列的一行。若必須使用垂直方向的單格區域,則必須先將陣列進行轉置,成為垂直的。
(181)返回A列最後一行的下一行
      Range("A65536").End(xlUp).Row 1
(182)
返回區域左上角的單格
      rng.Range ("A1")
(183)
訪問當前單格所在的工作簿
      Cell.Parent.Parent.Worksheets
(184)
切換所選單格是否加粗
      Selection.Font.Bold = Not Selection.Font.Bold
(185)
兩個關鍵字排序,相鄰兩列,B列為主關鍵字,A列為次關鍵字,昇冪排列
       ActiveSheet.Range("A:B").Sort Key1:=Columns("B"), Key2:=Columns("A"), _
               Header:=xlYes
(186)
顯示單格或單格區域中的第一個單格的數字格式
      Cell.Range("A1").NumberFormat
(187)
檢查單格或單格區域中的第一個單格是否含有公式
      Cell.Range("A1").HasFormula
     
工作表中單格是否含有公式
      cell.HasFormula
(188)
單格所在的整列
      Cell.EntireColumn
     
單格所在的整行
         Cell.EntireRow
(189)
顯示rng區域的名稱
      rng.Name.Name
(190)
返回rng區域的位址
      rng.Address
(191)
返回包含在rng區域中左上角單格中的公式。
      Cell.Range("A1").Formula
     
註:若在一個由多個單格組成的範圍內使用Formula屬性,會得到錯誤;若單格中沒有公式,會得到一個字串,在公式欄中顯示該單格的值。
(192)返回單格區域D5:D10中左上角單格
      Range("D5:D10").Cells(1,1)
(193)
活動單格所在的行數
      ActiveCell.Row
     
活動單格所在的列數
         ActiveCell.Column
(194)
當前工作表中的單格區域資料設置為左對齊
      Range("A1:B1").HorizontalAlignment = xlLeft
(195)
設置單格區域A2A10中數值格式
      ActiveSheet.Range("A2:A10").NumberFormat = "#,##0"
(196)
0替換單格區域中的空單格
      rng.Replace " ", "0"
 


Collectionobject
(197)
       Dim colMySheets As New Collection
     
聲明新的集合變數
      Public colMySheets As New Collection
(198)
創建一個名為MyRange的物件變數
      Set MyRange = Range("A1:A5")
(199)
向集合中添加惟一的條目(即將重複的條目忽略)
      objColl.Add Cell.Value, CStr(Cell.Value)

 


Windows API
(200)API函數聲明。
       返回安裝Windows所在的目錄名稱,調用該函數後,安裝Windows的目錄名稱將在第一個參數lpBuffer中,該目錄名稱的字串長度包含在第二個參數nSize
       Declare Function GetWindowsDirectoryA Lib "kernel32" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
(201)
       Set objExcel = CreateObject("Excel.Application")
     
創建Excel工作簿
      objExcel.Workbooks.Add
(202)
開啟Word應用程式
      Application.ActivateMicrosoftApp xlMicrosoftWord
(203)
獲取工作簿範本的位置
      Application.TemplatesPath
(204)
設置工作簿手動計算
      Application.Calculation = xlCalculationManual
     
工作簿自動計算
         Application.Calculation = xlCalculationAutomatic
(205)
不對第一張工作表自動進行重算
      Worksheets(1).EnableCalculation = False
(206)
重新計算所有打開的工作簿中的資料
      Application.CalculateFull
(207)
將最近使用的文檔列表數設為5
      Application.RecentFiles.Maximum = 5
(208)
打開最近打開的文檔中的第4個文檔
      Application.RecentFiles(4).Open
(209)
200666日的16:16:16開始運行BaoPo過程
      Application.OnTime DateSerial(2006, 6, 6) + TimeValue("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#
     
將系統時間更改為200666日上午61616
      Time = #6:16:16 AM#
(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)
設置按Enter鍵後單格的移動方向向右
      Application.MoveAfterReturnDirection = xlToRight
(224)
顯示打開對話方塊
      Application.FindFile
(225)
打開超鏈結文檔
      ThisWorkbook.FollowHyperlink "http://"
(226)
將當前工作簿設置為唯讀
      ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
(227)
將當前工作簿添加到收藏夾文件夾中
      ActiveWorkbook.AddToFavorites
(228)
在當前工作表中執行"拼寫檢查"
      ActiveSheet.CheckSpelling
(229)
保護當前工作表
      ActiveSheet.Protect userinterfaceonly:=True
(230)
在當前工作表的左側頁眉處列印出工作簿的完整路徑和檔案名
      ActiveSheet.PageSetup.LeftHeader = ThisWorkbook.FullName
(231)
     
解除對工作表Sheet1A1:G37區域單格的鎖定,以便當該工作表受保護時也可對這些單格進行修改
       Worksheets("Sheet1").Range("A1:G37").Locked = False
       Worksheets("Sheet1").Protect
(232)
顯示工作表sheet1的列印預覽視窗
      Worksheets("Sheet1").PrintPreview
(233)
禁用顯示在Excel"列印預覽"視窗中的"設置""頁邊距"按鈕
      ActiveSheet.PrintPreview Enablechanges:=False
(234)
在列印預覽中顯示格線
      ActiveSheet.PageSetup.PrintGridlines = True
     
在列印預覽中顯示行列編號
      ActiveSheet.PageSetup.PrintHeadings = True
(235)
開啟資料記錄單
      ActiveSheet.ShowDataForm
(236)
      
將工作表sheet1A列的SIN替換為COS
       Worksheets("Sheet1").Columns("A").Replace _
              What:="SIN", Replacement:="COS", _
              SearchOrder:=xlByColumns, MatchCase:=True
(237)
刪除當前工作表中的第2
      Rows(2).Delete
     
刪除當前工作表中的第2
      Columns(2).Delete
(238)
在當前單格左側插入一條垂直分頁符
      ActiveWindow.SelectedSheets.VPageBreaks.Add before:=ActiveCell
     
在當前單格上方插入一條垂直分頁符
      ActiveWindow.SelectedSheets.HPageBreaks.Add before:=ActiveCell
(239)
將當前工作表視窗滾動到第14
      ActiveWindow.ScrollRow = 14
     
將當前工作表視窗滾動到第13
      ActiveWindow.ScrollColumn = 13
(240)
關閉當前窗口
      ActiveWindow.Close
(241)
獲取當前視窗中的窗格數
      ActiveWindow.Panes.Count
(242)
A2D2的單格名稱設定為A1D1單格的內容
      Worksheets("sheet1").Range("A1:D2").CreateNames Top:=True
(243)
自定義當前工作表中單格A1A8中的內容為自動填充序列
      Application.AddCustomList listarray:=Range("A1:A8")
(244)
將單格A1B2的內容複製成螢幕快照
      Worksheets("sheet1").Range("A1:B2").CopyPicture xlScreen, xlBitmap
(245)
刪除所選區域的所有鏈結
      Selection.Hyperlinks.Delete
     
刪除第1列中所有的鏈結
      Columns(1).Hyperlinks.Delete
     
刪除第1行中所有的鏈結
      Rows(1).Hyperlinks.Delete
     
刪除指定範圍所有的鏈結
      Range("A1:Z30").Hyperlinks.Delete
(246)
在活動單格中設置開啟Windows計算器鏈結器
       ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, _
      Address:="C:WindowsSystem32Calc.exe", ScreenTip:="
按下我,就會開啟Windows計算器", TextToDisplay:="Windows計算"
(247)
開啟Windows計算器
      ActiveCell.Value = Shell("C:WindowsSystem32Calc.exe", vbNormalFocus)
(248)
打開自動篩選。若再運行一次,則關閉自動篩選
      ActiveSheet.Rows(1).AutoFilter
(249)
開啟/關閉所選區域的自動篩選
      Selection.AutoFilter
(250)
關閉自動篩選
      ActiveSheet.ShowAllData
(251)
檢查自動篩選是否開啟,若開啟則該語句返回True
      ActiveSheet.AutoFilterMode
(252)
A列中找出與單格A2內容不同的單格並刪除
       ActiveSheet.Columns("A").ColumnDifferences(Comparison:=ActiveSheet. _
      Range("A2")).Delete
(253)
刪除單格A6中的批註,包括聲音批註和文字批註
      ActiveSheet.Range("A6").ClearNotes
(254)
刪除單格B8中的註解文字
      ActiveSheet.Range("B8").ClearComments
(255)
清除單格區域A1D10中的格式
      ActiveSheet.Range("A1:D10").ClearFormats
(256)
      
將單格B2D2區域設置為藍色雙線
       ActiveSheet.Range("B2:D2").BorderAround ColorIndex:=5, _
        Weight:=xlMedium, LineStyle:=xlDouble
(257)
引用單格C2的數據
      Range("A1:B2").Item(2, 3)
      Range("A1:B2")(2, 3)
     
引用單格A2
      Range("A1:B2")(3)
(258)
設置字體加粗
      ActiveSheet.Cells(1, 1).Font.Bold = True
     
設置字體大小為24
      ActiveSheet.Cells(1, 1).Font.Size = 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)
將當前工作表中單格區域C2E6格式自動調整為彩色3格式
      ActiveSheet.Range("C2:E6").AutoFormat Format:=xlRangeAutoFormatColor3
(260)
選中當前工作表中的最後一個單格
      Cells.SpecialCells (xlCellTypeLastCell)
(261)
選定包含活動單格的整個陣列單格區域.假定該單格在資料單格區域中
      ActiveCell.CurrentArray.Select
(262)
將當前單格數字格式設置為帶3位小數,若為負數則顯示為紅色
      ActiveCell.NumberFormatLocal = "0.000; [紅色] 0.000"
(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)
在當前工作表的單格C1中添加批註
      ActiveSheet.Range("C1").AddComment
(269)
獲取今天的星期,以數值表示,1-7分別對應星期日至星期六
      Weekday (Date)
(270)
將單格A1的數值填充到單格A1A10區域中
      ActiveSheet.Range("A1").AutoFill Range(Cells(1, 1), Cells(10, 1))
(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)
在當前工作表中以(10,10)為起點(250,100)為終點畫一條直線並選中
       ActiveSheet.Shapes.AddLine(BeginX:=10, BeginY:=10, EndX:=250, _
      EndY:=100).Select
(283)
在當前工作表中畫一個左上角在(70,40),寬為130高為72的三角形並選中
       ActiveSheet.Shapes.AddShape(Type:=msoShapeRightTriangle, _
      Left:=70, Top:=40, Width:=130, Height:=72).Select
(284)
在當前工作表中畫一個以點(70,40)為起點,13072的矩形並選中
       ActiveSheet.Shapes.AddShape(Type:=msoShapeRectangle, _
      Left:=70, Top:=40, Width:=130, Height:=72).Select
(285)
在當前工作表中畫一個左上角在(70,40),寬為130高為72的橢圓
       ActiveSheet.Shapes.AddShape(Type:=msoShapeOval, _
      Left:=70, Top:=40, Width:=130, Height:=72).Select
(286)
將當前工作表中第一個形狀的線條顏色變為藍色
      ActiveSheet.Shapes(1).Line.ForeColor.RGB = RGB(0, 0, 255)
(287)
將當前工作表中第2個形狀的前景色設置為紅色
      ActiveSheet.Shapes(2).Fill.ForeColor.RGB = RGB(255, 0, 0)
(288)
將當前工作表中的第1個形狀旋轉20
      ActiveSheet.Shapes(1).Rotation = 20
(289)
將當前選中的形狀水準翻轉
      Selection.ShapeRange.Flip msoFlipHorizontal
     
將當前選中的形狀垂直翻轉
      Selection.ShapeRange.Flip msoFlipVertical
(290)
將所選取的形狀設置為第1種立體樣式
      Selection.ShapeRange.ThreeD.SetThreeDFormat msoThreeD1
(291)
將當前工作表中第一個立體形狀的深度設置為20
      ActiveSheet.Shapes(1).ThreeD.Depth = 20
(292)
將當前工作表中第1個立體形狀的進深部分的顏色設為藍色
      ActiveSheet.Shapes(1).ThreeD.ExtrusionColor.RGB = RGB(0, 0, 255)
(293)
將當前工作表中的第1個立體形狀沿X軸旋轉60
      ActiveSheet.Shapes(1).ThreeD.RotationX = 60
     
將當前工作表中的第1個立體形狀沿Y軸旋轉60
      ActiveSheet.Shapes(1).ThreeD.RotationY = 60
(294)
將所選擇的立體形狀轉換為平面形狀
      Selection.ShapeRange.ThreeD.Visible = msoFalse
(295)
在形狀中讓指定的連接符起點脫離原來所連接的形狀
      Selection.ShapeRange.ConnectorFormat.BeginDisconnect
(296)
複製當前工作表中形狀1的格式
      ActiveSheet.Shapes(1).PickUp
(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)
在當前工作表中插入一張d盤中名為sx的圖片
      ActiveSheet.Shapes.AddPicture "d:sx.jpg", True, True, 60, 20, 400, 300
(300)
將當前圖表類型改為立體區域圖
      ActiveChart.ApplyCustomType xl3DArea


資料出處:http://blog.excelhome.net/user1/sunxh/archives/2006/589.html 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 S 的頭像
    S

    程式學習紀錄舖

    S 發表在 痞客邦 留言(0) 人氣()