SpinButton1.value="/Val(TextBox1.Text)" ‘將文本框控件值賦給數(shù)值調(diào)節(jié)鈕控件
CStr(SpinButton1.Value)=TextBox1.Text ‘?dāng)?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控件顯示當(dāng)前所選單元格區(qū)域
Set FirstCell=Range(RefEdit1.Text).Range(“A1”) ‘設(shè)置某單元格區(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) ‘選中列表框中的第一個條目(注:當(dāng)列表框允許一次選中多個條目時,必須使用Selected屬性)
(147) ListBox1.RemoveItem ListBox1.ListIndex ‘移除列表框中選中的條目
*******************************************************
對象
Application對象
(148) Application.UserName ‘返回應(yīng)用程序的用戶名
(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)欄重新設(shè)置成正常狀態(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 ‘顯示“引用位置”的默認(rèn)單元格區(qū)域并顯示引用使其出現(xiàn)在窗口左上角(注:內(nèi)置對話框參數(shù)的使用)
(157) Application.CommandBars(1).Controls(2).Controls(16).Execute ‘執(zhí)行“定位”話框,相當(dāng)于選擇菜單“編輯——定位”命令
(158) Application.Transpose(Array(“Sun”,”Mon”,”Tur”,”Wed”,”Thu”,”Fri”,”Sat”)) ‘返回一個垂直的數(shù)組
(159) Application.Version ‘返回使用的Excel版本號
(160) Application.Cursor = xlNorthwestArrow ‘設(shè)置光標(biāo)形狀為北西向箭頭
Application.Cursor = xlIBeam ‘設(shè)置光標(biāo)形狀為Ⅰ字形
Application.Cursor = xlWait ‘設(shè)置光標(biāo)形狀為沙漏(等待)形
Application.Cursor = xlDefault ‘恢復(fù)光標(biāo)的默認(rèn)設(shè)置
(161) Application.WindowState ‘返回窗口當(dāng)前的狀態(tài)
Application.WindowState = xlMinimized ‘窗口最小化
Application.WindowState = xlMaximized ‘窗口最大化
Application.WindowState = xlNormal ‘窗口正常狀態(tài)
(162) Application.UsableHeight ‘獲取當(dāng)前窗口的高度
Application.UsableWidth ‘獲取當(dāng)前窗口的寬度
(163) Application.ActiveCell.Address ‘返回活動單元格的地址(注:返回的是絕對地址)
(164) Application.ActivePrinter ‘返回當(dāng)前打印機的名稱
(165) Application.ActiveSheet.Name ‘返回活動工作表的名稱
(166) Application.ActiveWindow.Caption ‘返回活動窗口的標(biāo)題
(167) Application.ActiveWorkbook.Name ‘返回活動工作簿的名稱
(168) Application.Selection.Address ‘返回所選區(qū)域的地址
(169) Application.ThisWorkbook.Name ‘返回當(dāng)前工作簿的名稱
(170) Application.CalculationVersion ‘返回Excel計算引擎版本(右邊四位數(shù)字)及Excel版本(左邊兩位數(shù)字)
(171) Application.MemoryFree ‘以字節(jié)為單位返回Excel允許使用的內(nèi)存數(shù)(不包括已經(jīng)使用的內(nèi)存)
(172) Application.MemoryUsed ‘以字節(jié)為單位返回Excel當(dāng)前使用的內(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)品登記使用的組織機構(gòu)的名稱
(176) Application.FindFormat ‘查找的格式種類
Application.ReplaceFormat ‘替換查找到的內(nèi)容的格式種類
ActiveSheet.Cells.Replace What:=” “, _
Replacement:=” “,SearchFormat:=True,ReplaceFormat:=True ‘替換查找到的格式
(177) Application.Interactive=False ‘忽略鍵盤或鼠標(biāo)的輸入
(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ù)組轉(zhuǎn)置成垂直方向的工作表單元格區(qū)域(A1至A10)
注:因為當(dāng)把一維數(shù)組的內(nèi)容傳遞給某個單元格區(qū)域時,該單元格區(qū)域中的單元格必須是水平方向的,即含有多列的一行。若必須使用垂直方向的單元格區(qū)域,則必須先將數(shù)組進行轉(zhuǎn)置,成為垂直的。
(181) Range(“A65536”).End(xlUp).Row+1 ‘返回A列最后一行的下一行
(182) rng.Range(“A1”) ‘返回區(qū)域左上角的單元格
(183) cell.Parent.Parent.Worksheets ‘訪問當(dāng)前單元格所在的工作簿
(184) Selection.Font.Bold=Not Selection.Font.Bold ‘切換所選單元格是否加粗
(185) ActiveSheet.Range("A:B").Sort Key1:=Columns("B"), Key2:=Columns("A"), _
Header:=xlYes ‘兩個關(guān)鍵字排序,相鄰兩列,B列為主關(guān)鍵字,A列為次關(guān)鍵字,升序排列
(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 ‘當(dāng)前工作表中的單元格區(qū)域數(shù)據(jù)設(shè)置為左對齊
(195) ActiveSheet.Range(“A2:A10”).NumberFormat=”#,##0” ‘設(shè)置單元格區(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) ‘向集合中添加惟一的條目(即將重復(fù)的條目忽略)
*******************************************************
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中。
--------------------------------------------------------------------------------
前面已經(jīng)推出了兩輯VBA語句集,共有200句VBA常用代碼及代碼功能的簡要解釋。根據(jù)前階段在學(xué)習(xí)VBA過程中總結(jié)歸納的成果,特匯編了VBA語句集第3輯,供大家在學(xué)習(xí)VBA編程時參考。其實,您可以在VBE編輯器中將這些語句進行測試,以體驗其作用或效果。
VBA語句集的特點是,一句VBA代碼,后面配有代碼功能簡要的說明或解釋。每輯100句,盡可能收錄所有在程序中所要用到的代碼。
--------------------------------------------------------------------------------
(201) Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Add ‘創(chuàng)建Excel工作簿
(202) Application.ActivateMicrosoftApp xlMicrosoftWord '開啟Word應(yīng)用程序
(203) Application.TemplatesPath ‘獲取工作簿模板的位置
(204) Application.Calculation = xlCalculationManual ‘設(shè)置工作簿手動計算
Application.Calculation = xlCalculationAutomatic ‘工作簿自動計算
(205) Worksheets(1).EnableCalculation = False ‘不對第一張工作表自動進行重算
(206) Application.CalculateFull '重新計算所有打開的工作簿中的數(shù)據(jù)
(207) Application.RecentFiles.Maximum = 5 '將最近使用的文檔列表數(shù)設(shè)為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) '返回應(yīng)用程序當(dāng)前所在國家的設(shè)置信息
(213) Application.AutoCorrect.AddReplacement "葛洲壩", "三峽" '自動將在工作表中進行輸入的"葛洲壩"更正為"三峽"
(214) Beep '讓計算機發(fā)出聲音
(215) Err.Number ‘返回錯誤代碼
(216) MsgBox IMEStatus '獲取輸入法狀態(tài)
(217) Date = #6/6/2006#
Time = #6:16:16 AM# '將系統(tǒng)時間更改為2006年6月6日上午6時16分16秒
(218) Application.RollZoom = Not Application.RollZoom '切換是否能利用鼠標(biāo)中間的滑輪放大/縮小工作表
(219) Application.ShowWindowsInTaskba = True ‘顯示任務(wù)欄中的窗口,即各工作簿占用各自的窗口
(220) Application.DisplayScrollBars = True ‘顯示窗口上的滾動條
(221) Application.DisplayFormulaBar = Not Application.DisplayFormulaBar '切換是否顯示編輯欄
(222) Application.Dialogs(xlDialogPrint).Show ‘顯示打印內(nèi)容對話框
(223) Application.MoveAfterReturnDirection = xlToRight '設(shè)置按Enter鍵后單元格的移動方向向右
(224) Application.FindFile '顯示打開對話框
(225) ThisWorkbook.FollowHyperlink
http://www.sinoarch.cn ‘打開超鏈接文檔
(226) ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly '將當(dāng)前工作簿設(shè)置為只讀
(227) ActiveWorkbook.AddToFavorites '將當(dāng)前工作簿添加到收藏夾文件夾中
(228) ActiveSheet.CheckSpelling '在當(dāng)前工作表中執(zhí)行"拼寫檢查"
(229) ActiveSheet.Protect userinterfaceonly:=True ‘保護當(dāng)前工作表
(230) ActiveSheet.PageSetup.LeftHeader = ThisWorkbook.FullName ‘在當(dāng)前工作表的左側(cè)頁眉處打印出工作簿的完整路徑和文件名
(231) Worksheets("Sheet1").Range("A1:G37").Locked = False
Worksheets("Sheet1").Protect
'解除對工作表Sheet1中A1:G37區(qū)域單元格的鎖定
'以便當(dāng)該工作表受保護時也可對這些單元格進行修改
(232) Worksheets("Sheet1").PrintPreview '顯示工作表sheet1的打印預(yù)覽窗口
(233) ActiveSheet.PrintPreview Enablechanges:=False ‘禁用顯示在Excel的“打印預(yù)覽”窗口中的“設(shè)置”和“頁邊距”按鈕
(234) ActiveSheet.PageSetup.PrintGridlines = True '在打印預(yù)覽中顯示網(wǎng)格線
ActiveSheet.PageSetup.PrintHeadings = True '在打印預(yù)覽中顯示行列編號
(235) ActiveSheet.ShowDataForm '開啟數(shù)據(jù)記錄單
(236) Worksheets("Sheet1").Columns("A").Replace _
What:="SIN", Replacement:="COS", _
SearchOrder:=xlByColumns, MatchCase:=True '將工作表sheet1中A列的SIN替換為COS
(237) Rows(2).Delete '刪除當(dāng)前工作表中的第2行
Columns(2).Delete '刪除當(dāng)前工作表中的第2列
(238) ActiveWindow.SelectedSheets.VPageBreaks.Add before:=ActiveCell '在當(dāng)前單元格左側(cè)插入一條垂直分頁符
ActiveWindow.SelectedSheets.HPageBreaks.Add before:=ActiveCell '在當(dāng)前單元格上方插入一條垂直分頁符
(239) ActiveWindow.ScrollRow = 14 '將當(dāng)前工作表窗口滾動到第14行
ActiveWindow.ScrollColumn = 13 '將當(dāng)前工作表窗口滾動到第13列
(240) ActiveWindow.Close '關(guān)閉當(dāng)前窗口
(241) ActiveWindow.Panes.Count '獲取當(dāng)前窗口中的窗格數(shù)
(242) Worksheets("sheet1").Range("A1:D2").CreateNames Top:=True '將A2至D2的單元格名稱設(shè)定為A1到D1單元格的內(nèi)容
(243) Application.AddCustomList listarray:=Range("A1:A8") '自定義當(dāng)前工作表中單元格A1至A8中的內(nèi)容為自動填充序列
(244) Worksheets("sheet1").Range("A1:B2").CopyPicture xlScreen, xlBitmap '將單元格A1至B2的內(nèi)容復(fù)制成屏幕快照
(245) Selection.Hyperlinks.Delete ‘刪除所選區(qū)域的所有鏈接
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計算器" '在活動單元格中設(shè)置開啟Windows計算器鏈接
(247) ActiveCell.Value = Shell("C:\Windows\System32\Calc.exe", vbNormalFocus) '開啟Windows計算器
(248) ActiveSheet.Rows(1).AutoFilter ‘打開自動篩選。若再運行一次,則關(guān)閉自動篩選
(249) Selection.Autofilter ‘開啟/關(guān)閉所選區(qū)域的自動篩選
(250) ActiveSheet.ShowAllData ‘關(guān)閉自動篩選
(251) ActiveSheet.AutoFilterMode ‘檢查自動篩選是否開啟,若開啟則該語句返回True
(252) ActiveSheet.Columns("A").ColumnDifferences(Comparison:=ActiveSheet. _
Range("A2")).Delete '在A列中找出與單元格A2內(nèi)容不同的單元格并刪除
(253) ActiveSheet.Range("A6").ClearNotes '刪除單元格A6中的批注,包括聲音批注和文字批注
(254) ActiveSheet.Range("B8").ClearComments '刪除單元格B8中的批注文字
(255) ActiveSheet.Range("A1:D10").ClearFormats '清除單元格區(qū)域A1至D10中的格式
(256) ActiveSheet.Range("B2:D2").BorderAround ColorIndex:=5, _
Weight:=xlMedium, LineStyle:=xlDouble '將單元格B2至D2區(qū)域設(shè)置為藍色雙線