Private Sub test()
Dim count As Integer
count = Worksheets.count '獲取工作表數(shù)量
Dim name As String
name = Worksheets(1).name '獲取第一個工作表名稱
Worksheets(count).Select '選中最后一個工作表
Worksheets(Array("StudentAttendence", "studentsScore")).Select '選中多張工作表,可以同時對這些工作表進行操作
Worksheets("sheet1").Activate '激活表名為sheet1的工作表
End Sub
注:對于激活的工作表可以使用ActiveSheet表示。選中的工作表與激活的工作表不同,選中的工作表可以有多個,但是激活的工作表只有一個。一般點擊工作表的標簽時候就會激活該工作表。
【例1】刪除工作表中的所有批注
Private Sub test()
Dim tmp As Comment
For Each tmp In ActiveSheet.Comments
tmp.Delete
Next
End Sub
【例2】刪除選中區(qū)域的所有批注
Sub test2()
For Each rng In Selection
If Not rng.Comment Is Nothing Then
rng.ClearComments
End If
Next
End Sub
Range.AddComment添加批注。
If Worksheets(1).Cells(1, 1).Comment Is Nothing Then '判斷是否存在批注
Worksheets(1).Cells(1, 1).AddComment '添加批注
Worksheets(1).Cells(1, 1).Comment.Visible = True '設(shè)置批注可見
Worksheets(1).Cells(1, 1).Comment.Text Text:="Hello"
Worksheets(1).Cells(1, 1).Comment.Shape.AutoShapeType = 9 '設(shè)置為橢圓形
End If
注:批注中的text必須設(shè)置為字符串類型,否則不顯示批注內(nèi)容。
Hyperlinks.Add語法結(jié)構(gòu):
Hyperlinks.Add(Anchor,Address,SubAddress,ScreenTip,TextToDisplay)
對Hyperlinks.Add方法的參數(shù)說明
Anchor,必選。超鏈接的位置可為Range或Shape對象;
Address,必選。超鏈接的地址;
SubAddress,可選。超鏈接的子地址;
ScreenTip,可選。當鼠標放停留在超鏈接上時所顯示的屏幕提示;
TextToDisplay,可選。要顯示的超鏈接文本。
Private Sub test()
Dim index As Integer
For index = 1 To Worksheets.count
ActiveSheet.Hyperlinks.Add anchor:=Worksheets("sheet1").Cells(index, 1), Address:="", SubAddress:=Worksheets(index).name & _
"!A1", TextToDisplay:=Worksheets(index).name
Next
End Sub
注:上面的自地址選取的是指向各個鏈接的表的A1單元格。
Worksheets(2).Hyperlinks.Delete
Count = Worksheets(2).Hyperlinks.Count
Private Sub test()
Dim index As Integer
For index = 2 To Worksheets.count
Worksheets(index).Visible = xlSheetVeryHidden
Next
End Sub
Worksheet.Visible可以取值如下
名稱 | 值 | 說明 |
xlSheetHidden | 0 | 隱藏工作表,用戶可以通過菜單取消隱藏 |
xlSheetVeryHidden | 2 | 隱藏對象,是對象重新可見的唯一方法是將此屬性值設(shè)置為true(用戶無法使該對象可見) |
xlSheetVisible | -1 | 顯示工作表 |
下例為用各個工作表名稱制作目錄,并以超鏈接的形式指向合目標。
Hyperlinks.Add語法結(jié)構(gòu):
Hyperlinks.Add(Anchor,Address,SubAddress,ScreenTip,TextToDisplay)
對Hyperlinks.Add方法的參數(shù)說明
Anchor,必選。超鏈接的位置可為Range或Shape對象;
Address,必選。超鏈接的地址;
SubAddress,可選。超鏈接的子地址;
ScreenTip,可選。當鼠標放停留在超鏈接上時所顯示的屏幕提示;
TextToDisplay,可選。要顯示的超鏈接文本。
Private Sub test()
Dim index As Integer
For index = 1 To Worksheets.count
ActiveSheet.Hyperlinks.Add anchor:=Worksheets("sheet1").Cells(index, 1), Address:="", SubAddress:=Worksheets(index).name & _
"!A1", TextToDisplay:=Worksheets(index).name
Next
End Sub
注:上面的自地址選取的是指向各個鏈接的表的A1單元格。
Private Sub test()
Dim index As Integer
For index = Worksheets(1).UsedRange.Rows.count To 1 Step -1
If Application.WorksheetFunction.CountA(Rows(index)) = 0 Then
Rows(index).Delete
End If
Next
End Sub
Private Sub test()
Worksheets(1).ScrollArea = "A1:F10"
End Sub
注:Excel不會記憶該設(shè)置,當再次打開時候該屬性值將被重置。
Rows(2).Insert '在第2行上方插入一行
Columns(1).Insert '在第1列前面插入1列
Rows(1).Delete '刪除第1行
Columns(2).Delete '刪除第2列
語法如下:
WorkSheet.Copy(Before,After)
參數(shù)Before及After均是可選,用來確定新工作表放的位置,如果都不指定則新建一個工作薄。不同同時指定Before及After,只能指定其中一個。
Private Sub test()
Worksheets("sheet2").Copy before:=Worksheets("sheet1") '復(fù)制后的工作sheet2得到的新工作表被命名為Sheet2 (2)
Worksheets("Sheet2 (2)").Select
Worksheets("Sheet2 (2)").name = "新工作表" '重命名復(fù)制后的工作表
End Sub
Private Sub test()
Dim index As Integer
For index = 1 To Worksheets.count
If Worksheets(index).UsedRange.count = 1 And Worksheets(index).Cells(1, 1) = "" Then
Worksheets(index).Delete
End If
Next
End Sub
Private Sub test()
Worksheets("StudentAttendence").Activate
Activasheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="example.pdf"
End Sub
參數(shù)type可取值為xlTypePDF及xlTypeXPS.
語法格式:
Worksheets.Add(Before,After,Count,Type)
參數(shù)說明:
Count為要插入的工作表數(shù)量,Type可以取值有:xlWorksheet,xlChart,xlExcel4MacroSheet,xlExcel4IntMacroSheet。如果同時省略before及after則插入到活動工作表之前。
Private Sub test()
Worksheets.Add after:=Worksheets(Worksheets.count)
End Sub
Sub test()
Sheets.Add.name = "new"
Sheets("new").Delete
Worksheets.Add after:=Worksheets(Sheets.Count), Count:=2 '新增兩個工總表
End Sub
Private Sub test()
Worksheets("StudentAttendence").Select
Worksheets("StudentAttendence").UsedRange.Select
Selection.Copy
Worksheets("sheet1").Paste Destination:=Worksheets("sheet1").Cells(1, 1)
End Sub
將sheet3,sheet5插入到sheet1的前面
Worksheets(array(“sheet3”,”sheet5”)).Move before:=Sheets(1)
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox ("工作表內(nèi)容改變了")
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox ("選中工作表行數(shù):" & Target.Row & xlctrlf & "列號為:" & Target.Column)
End Sub