1.對象清單
對象 | 說明 |
---|---|
Application | 代表excel應用程序 |
Workbook | 代表excel的工作簿,一個workbook對象代表一個工作簿對象 |
worksheet | 代表excel的工作表侵蒙,一個worksheet對象代表一張普通工作表 |
Range | 代表工作表里的單元格造虎,可以是單個、也可以是單元格區(qū)域 |
2.對象 Application
2.1 屬性 ScreenUpdating
作用:屏幕是否刷新的開關(guān)
Sub InputTest2()
Cells.ClearComments
Application.ScreenUpdating = False '暫停屏幕刷新纷闺,不能看到運算過程
Range("A1:A10") = 100
MsgBox "有看到100的輸入過程嗎算凿?"
Range("B1:B10") = 200
MsgBox "有看到200的輸入過程嗎"
Application.ScreenUpdating = True '解開刷新屏幕
End Sub
2.2 屬性 DisplayAlerts
作用:程序在運行過程中,是否顯示警告信息犁功,默認值為true
Sub DelSht()
Dim sht As Worksheet
Application.DisplayAlerts = False '關(guān)閉警告信息顯示
For Each sht In Worksheets
If sht.Name = ActiveSheet.Name Then
sht.Delete
End If
Next
Application.DisplayAlerts = True '解鎖警告信息顯示
End Sub
2.3 屬性 EnableEvents
作用:限制事件的觸發(fā)
'Worksheet_SelectionChange = 工作表點擊事件'
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Value = Target.Address
Application.EnableEvents = False
Target.Offset(1, 0).Select
Application.EnableEvents = True
End Sub
2.4 屬性 WorksheetFunction
作用:部分excel函數(shù)在vba里并不能直接使用氓轰,只能通過 WorksheetFunction的方式來間接使用
Sub CountTest()
Dim mycount As Integer
mycount = Application.WorksheetFunction.CountIf(Range("A1:B50"), ">100")
MsgBox "A1:B50中大于100的單元格個數(shù)為:" & mycount
End Sub
3.對象:Workbook
3.1 基礎屬性
Sub WBMsg()
Range("B2:B4").ClearContents
Range("B2") = ThisWorkbook.Name '當前工作簿的名字
Range("B3") = ThisWorkbook.Path '當前工作簿的路徑
Range("B4") = ThisWorkbook.FullName '當前工作簿的路徑(帶名字)
End Sub
更多的屬性,可以在幫助文檔里查看
3.2 工作簿的操作
新建
空白工作簿 Workbooks.Add
模板工作簿(以目標文件為模板) Workbooks.Add "C:\Book1.xls"
打開
Workbooks.Open "C:\Book1.xls"
激活(選中)
Workbooks("Book1"). Activate
保存
保存 ThisWorkbook.Save
另存為 ThisWorkbook.SaveAs Filename:="C:\Book2.xls"
保留原文件波桩、另存新文件 ThisWorkbook.SaveCopyAs Filename:="C:\Book2.xls"
關(guān)閉
關(guān)閉所有 Workbooks.Close
關(guān)閉某個文件 Workbooks("Book2").Close
保存并關(guān)閉某個文件
Workbooks("Book2").Close savechanges :=True
'寫法1
Workbooks("Book2").Close True
'寫法2(省略參數(shù)名)
3.3 ThisWorkbook與ActiveWorkbook
前者是代碼所在的工作簿戒努,后者是活動的工作簿
4.對象:Worksheet
索引
選擇第1個工作表 Worksheets.(1)
選擇名為"Sheet1"的工作表 Worksheets.("Sheet1")
新建
空白工作表 Worksheets.Add
插入多個工作表 Worksheets.Add Count:=3
在xx工作表前后插入工作表
Worksheets.Add before:=Worksheets(1)
Worksheets.Add after:=Worksheets(1)
在xx工作表前后插入多個工作表
Worksheets.Add after:=Worksheets(1) Count:=3
改名
改名 Worksheets(2).Name = "工資表"
新建起名
Sub ShtAdd()
Worksheets.Add before:=worksheets(1)
Activesheet.Name = "工資表"
End Sub
Sub ShtAdd()
Worksheets.Add(before:=worksheets(1)).Name="工資表"
End Sub
刪除
Worksheets("Sheet1").Delete
激活
Worksheets("Sheet1").Activate
Worksheets("Sheet1").Select
復制
將"Sheet1"復制,并粘貼到"考勤表"的前&后面
Worksheets("Sheet1").copy before:=Worksheets("考勤表")
Worksheets("Sheet1").copy after:=Worksheets("考勤表")
不使用參數(shù)镐躲,默認將工作表復制到 新工作簿 中
Worksheets("考勤表").copy
移動
將"Sheet1"移動到"考勤表"的前&后面
Worksheets("Sheet1").move before:=Worksheets("考勤表")
Worksheets("Sheet1").move after:=Worksheets("考勤表")
不使用參數(shù)储玫,默認將工作表移動到 新工作簿 中
Worksheets("考勤表").move
5.對象:Range
Range對象的內(nèi)容太大,后面開個獨立章