ExcelVBA语句300.docx
《ExcelVBA语句300.docx》由会员分享,可在线阅读,更多相关《ExcelVBA语句300.docx(28页珍藏版)》请在冰豆网上搜索。
ExcelVBA语句300
ExcelVBA語句集300
定制模組行為
(1)OptionExplicit'強制對模組內所有變數進行聲明
OptionPrivateModule'標記模組為私有,僅對同一工程中其他模組有用,在巨集對話方塊中不顯示
OptionCompareText'字串不區分大小寫
OptionBase1'指定陣列的第一個下標為1
(2)OnErrorResumeNext'忽略錯誤繼續執行VBA代碼,避免出現錯誤消息
(3)OnErrorGoToErrorHandler'當錯誤發生時跳轉到過程中的某個位置
(4)OnErrorGoTo0'恢復正常的錯誤提示
(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.ArrangexlArrangeStyleTiled‘將工作簿以平鋪方式排列
(17)ActiveWorkbook.WindowState=xlMaximized‘將當前工作簿最大化
工作表
(18)ActiveSheet.UsedRange.Rows.Count‘當前工作表中已使用的行數
(19)Rows.Count‘獲取工作表的行數(注:
考慮向前相容性)
(20)Sheets(Sheet1).Name=“Sum”'將Sheet1命名為Sum
(21)ThisWorkbook.Sheets.AddBefore:
=Worksheets
(1)'添加一個新工作表在第一工作表前
(22)ActiveSheet.MoveAfter:
=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=NotActiveWindow.DisplayGridlines'切換工作表中的格線顯示,這種方法也可以用在其他方面進行相互切換,即相當於開關按鈕
(27)ActiveWindow.DisplayHeadings=NotActiveWindow.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”).CopyRange(“B1”)'複製單格A1,粘貼到單格B1中
Range(“A1:
D8”).CopyRange(“F1”)'將單格區域複製到單格F1開始的區域中
Range(“A1:
D8”).CutRange(“F1”)'剪切單格區域A1至D8,複製到單格F1開始的區域中
Range(“A1”).CurrentRegion.CopySheets(“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”).AutoFilterField:
=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.AddName:
=“ContentList”,_
RefersTo:
=“=OFFSET(Sheet1!
A2,0,0,COUNTA(Sheet2!
$A:
$A))”‘動態命名列
(62)Names.AddName:
=“Company”,RefersTo:
=“CompanyCar”‘命名字串CompanyCar
(63)Names.AddName:
=“Total”,RefersTo:
=123456‘將數字123456命名為Total。
注意數位不能加引號,否則就是命名字串了。
(64)Names.AddName:
=“MyArray”,RefersTo:
=ArrayNum‘將陣列ArrayNum命名為MyArray。
(65)Names.AddName:
=“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.SetSourceDataSource:
=Sheets(“Sheet1”).Range(“A1:
D5”),_
PlotBy:
=xlColumns‘指定圖表資料源並按列排列
(77)ActiveChart.LocationWhere:
=xlLocationAsNewSheet‘新圖表作為新圖表工作表
(78)ActiveChart.PlotArea.Interior.ColorIndex=xlNone‘將繪圖區顏色變為白色
(79)WorkSheets(“Sheet1”).ChartObjects
(1).Chart._
ExportFileName:
=“C:
MyChart.gif”,FilterName:
=“GIF”‘將圖表1導出到C盤上並命名為MyChart.gif
表單
(80)MsgBox“Hello!
”'訊息方塊中顯示消息Hello
(81)Ans=MsgBox(“Continue?
”,vbYesNo)'在訊息方塊中點擊“是”按鈕,則Ans值為vbYes;點擊“否”按鈕,則Ans值為vbNo。
IfMsgBox(“Continue?
”,vbYesNo)<>vbYesThenExitSub'返回值不為“是”,則退出
(82)Config=vbYesNo+vbQuestion+vbDefaultButton2'使用常量的組合,賦值組Config變數,並設置第二個按鈕為缺省按鈕
(83)MsgBox“Thisisthefirstline.”&vbNewLine&“Secondline.”'在訊息方塊中強制換行,可用vbCrLf代替vbNewLine。
(84)MsgBox"theaverageis:
"&Format(Application.WorksheetFunction.Average(Selection),"#,##0.00"),vbInformation,"selectioncountaverage"&Chr(13)'應用工作表函數返回所選區域的平均值並按指定格式顯示
(85)Userform1.Show‘顯示用戶表單
(86)LoadUserform1‘載入一個用戶表單,但該表單處於隱藏狀態
(87)Userform1.Hide‘隱藏用戶表單
(88)UnloadUserform1或UnloadMe‘卸載用戶表單
(89)(圖像控制項).Picture=LoadPicture(“圖像路徑”)‘在用戶表單中顯示圖形
(90)UserForm1.Show0或UserForm1.ShowvbModeless‘將表單設置為無模式狀態
(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)SetExcelSheet=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
SetExcelSheet=Nothing'釋放該物件變數
(94)‘聲明並創建一個Excel物件引用
DimxlAppAsExcel.Application
DimxlBookAsExcel.Workbook
DimxlSheetAsExcel.WorkSheet
SetxlApp=CreateObject("Excel.Application")
SetxlBook=xlApp.Workbooks.Add
SetxlSheet=xlBook.Worksheets
(1)
(95)‘創建並傳遞一個Excel.Application對象的引用
CallMySub(CreateObject("Excel.Application"))
(96)Setd=CreateObject(Scripting.Dictionary)‘創建一個Dictionary物件變數
(97)d.Add"a","Athens"'為物件變數添加關鍵字和條目
其他
(98)Application.OnKey“^I”,”macro”'設置Ctrl+I鍵為macro過程的快捷鍵
(99)Application.CutCopyMode=False‘退出剪切/複製模式
(100)Application.VolatileTrue'無論何時工作表中任意單格重新計算,都會強制計算該函數
Application.VolatileFalse'只有在該函數的一個或多個參數發生改變時,才會重新計算該函數
定制模組行為
(101)Err.Clear‘清除程式運行過程中所有的錯誤
*******************************************************
工作簿
(102)ThisWorkbook.BuiltinDocumentProperties(“LastSaveTime”)
或Application.Caller.Parent.Parent.BuiltinDocumentProperties(“LastSaveTime”)‘返回上次保存工作簿的日期和時間
(103)ThisWorkbook.BuiltinDocumentProperties("LastPrintDate")
或Application.Caller.Parent.Parent.BuiltinDocumentProperties(“LastPrintDate”)‘返回上次列印或預覽工作簿的日期和時間
(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.AddCount:
=2,_
Before:
=ThisWorkbook.Worksheets
(2)
或ThisWorkbook.Workshees.AddThisWorkbook.Worksheets
(2),,2‘在第二個工作表之前添加兩個新的工作表
(117)ThisWorkbook.Worksheets(3).Copy‘複製一個工作表到新的工作簿
(118)Thi