Worksheets(\ MsgBox \显示工作表sheet1\
Worksheets(\End Sub
示例说明:本示例演示了隐藏和显示工作表的各种情形。其中,使用xlSheetVeryHidden常量来隐藏工作表,将不能通过选择工作表菜单栏中的“格式”——“工作表”——“取消隐藏”命令来取消隐藏。
[示例04-04-02]
Sub ShowAllSheets()
MsgBox \使当前工作簿中的所有工作表都显示(即将隐藏的工作表也显示)\ Dim ws As Worksheet For Each ws In Sheets ws.Visible = True Next ws End Sub
[示例04-05]获取工作表数(Count属性) [示例04-05-01] Sub WorksheetNum() Dim i As Long
i = Worksheets.Count
MsgBox \当前工作簿的工作表数为:\End Sub
[示例04-05-02] Sub WorksheetNum() Dim i As Long i = Sheets.Count
MsgBox \当前工作簿的工作表数为:\End Sub
示例说明:在一个包含图表工作表的工作簿中运行上述两段代码,将会得出不同的结果,原因是对于Sheets集合来讲,工作表包含图表工作表。应注意Worksheets集合与Sheets集合的区别,下同。
[示例04-06]获取或设置工作表名称(Name属性) [示例04-06-01]
Sub NameWorksheet()
Dim sName As String, sChangeName As String sName = Worksheets(2).Name
MsgBox \当前工作簿中第2个工作表的名字为:\ sChangeName = \我的工作表\
MsgBox \将当前工作簿中的第3个工作表名改为:\ Worksheets(3).Name = sChangeName
46
End Sub
示例说明:使用Name属性可以获取指定工作表的名称,也可以设置工作表的名称。
[示例04-06-02]重命名工作表 Sub ReNameSheet()
Dim xStr As String Retry:
Err.Clear
xStr = InputBox(\请输入工作表的新名称:\ , \重命名工作表\ If xStr = \ On Error Resume Next ActiveSheet.Name = xStr If Err.Number <> 0 Then
MsgBox Err.Number & \ Err.Clear GoTo Retry End If
On Error GoTo 0 '......... End Sub
[示例04-07]激活/选择工作表(Activate方法和Select方法) [示例04-07-01]
Sub SelectWorksheet()
MsgBox \激活当前工作簿中的工作表sheet2\ Worksheets(\
MsgBox \激活当前工作簿中的工作表sheet3\ Worksheets(\
MsgBox \同时选择工作簿中的工作表sheet2和sheet3\ Worksheets(Array(\End Sub
示例说明:Activate方法只能激活一个工作表,而Select方法可以同时选择多个工作表。
[示例04-07-02]
Sub SelectManySheet()
MsgBox \选取第一个和第三个工作表.\ Worksheets(1).Select
Worksheets(3).Select False End Sub
[示例04-08]获取当前工作表的索引号(Index属性)
47
Sub GetSheetIndex() Dim i As Long
i = ActiveSheet.Index
MsgBox \您正使用的工作表索引号为\End Sub
[示例04-09]选取前一个工作表(Previous属性) Sub PreviousSheet()
If ActiveSheet.Index <> 1 Then
MsgBox \选取当前工作簿中当前工作表的前一个工作表\ ActiveSheet.Previous.Activate Else
MsgBox \已到第一个工作表\ End If End Sub
示例说明:如果当前工作表是第一个工作表,则使用Previous属性会出错。
[示例04-10]选取下一个工作表(Next属性) Sub NextSheet()
If ActiveSheet.Index <> Worksheets.Count Then
MsgBox \选取当前工作簿中当前工作表的下一个工作表\ ActiveSheet.Next.Activate Else
MsgBox “已到最后一个工作表” End If End Sub
示例说明:如果当前工作表是最后一个工作表,则使用Next属性会出错。
[示例04-11]工作表行和列的操作 [示例04-11-01]隐藏行 Sub HideRow()
Dim iRow As Long
MsgBox \隐藏当前单元格所在的行\ iRow = ActiveCell.Row
ActiveSheet.Rows(iRow).Hidden = True MsgBox \取消隐藏\
ActiveSheet.Rows(iRow).Hidden = False End Sub
[示例04-11-02]隐藏列 Sub HideColumn()
Dim iColumn As Long
MsgBox \隐藏当前单元格所在列\ iColumn = ActiveCell.Column
48
ActiveSheet.Columns(iColumn).Hidden = True MsgBox \取消隐藏\
ActiveSheet.Columns(iColumn).Hidden = False End Sub
[示例04-11-03]插入行 Sub InsertRow() Dim rRow As Long
MsgBox \在当前单元格上方插入一行\ rRow = Selection.Row
ActiveSheet.Rows(rRow).Insert End Sub
[示例04-11-04]插入列 Sub InsertColumn() Dim cColumn As Long
MsgBox \在当前单元格所在行的左边插入一行\ cColumn = Selection.Column
ActiveSheet.Columns(cColumn).Insert End Sub
[示例04-11-05]插入多行 Sub InsertManyRow()
MsgBox \在当前单元格所在行上方插入三行\ Dim rRow As Long, i As Long For i = 1 To 3
rRow = Selection.Row
ActiveSheet.Rows(rRow).Insert Next i End Sub
[示例04-11-06]设置行高 Sub SetRowHeight()
MsgBox \将当前单元格所在的行高设置为25\ Dim rRow As Long, iRow As Long rRow = ActiveCell.Row
iRow = ActiveSheet.Rows(rRow).RowHeight ActiveSheet.Rows(rRow).RowHeight = 25 MsgBox \恢复到原来的行高\
ActiveSheet.Rows(rRow).RowHeight = iRow End Sub
[示例04-11-07]设置列宽 Sub SetColumnWidth()
MsgBox \将当前单元格所在列的列宽设置为20\
49
Dim cColumn As Long, iColumn As Long cColumn = ActiveCell.Column
iColumn = ActiveSheet.Columns(cColumn).ColumnWidth ActiveSheet.Columns(cColumn).ColumnWidth = 20 MsgBox \恢复至原来的列宽\
ActiveSheet.Columns(cColumn).ColumnWidth = iColumn End Sub
[示例04-11-08]恢复行高列宽至标准值 Sub ReSetRowHeightAndColumnWidth()
MsgBox \将当前单元格所在的行高和列宽恢复为标准值\ Selection.UseStandardHeight = True Selection.UseStandardWidth = True End Sub
[示例04-12]工作表标签
[示例04-12-01] 设置工作表标签的颜色 Sub SetSheetTabColor()
MsgBox \设置当前工作表标签的颜色\ ActiveSheet.Tab.ColorIndex = 7 End Sub
[示例04-12-01]恢复工作表标签颜色 Sub SetSheetTabColorDefault()
MsgBox \将当前工作表标签颜色设置为默认值\ ActiveSheet.Tab.ColorIndex = -4142 End Sub
[示例04-12-03]交替隐藏或显示工作表标签 Sub HideOrShowSheetTab()
MsgBox \隐藏/显示工作表标签\
ActiveWindow.DisplayWorkbookTabs = Not ActiveWindow.DisplayWorkbookTabs End Sub
[示例04-13]确定打印的页数(HPageBreaks属性与VPageBreaks属性) Sub PageCount() Dim i As Long
i = (ActiveSheet.HPageBreaks.Count + 1) * (ActiveSheet.VPageBreaks.Count + 1)
MsgBox \当前工作表共\页.\End Sub
[示例04-14]保护/撤销保护工作表
50