Excel中用VBA-Worksheet基本操作应用示例 下载本文

内容发布更新时间 : 2024/4/28 15:26:34星期一 下面是文章的全部内容请认真阅读。

Worksheets(\

MsgBox \在当前工作簿中复制工作表sheet2并将所复制的工作表放在工作表sheet3之后\

Worksheets(\End Sub

示例说明:Copy方法带有2个可选的参数,即参数Before和参数After,在使用时两个参数只参选一。

[示例04-03]移动工作表(Move方法) Sub MoveWorksheet()

MsgBox \在当前工作簿中将工作表sheet3移至工作表sheet2之前\ Worksheets(\ MsgBox \在当前工作簿中将工作表sheet1移至最后\

Worksheets(\End Sub

示例说明:Move方法与Copy方法的参数相同,作用也一样。

[示例04-04]隐藏和显示工作表(Visible属性) [示例04-04-01] Sub testHide()

MsgBox \第一次隐藏工作表sheet1\

Worksheets(\ MsgBox \显示工作表sheet1\

Worksheets(\ MsgBox \第二次隐藏工作表sheet1\

Worksheets(\ MsgBox \显示工作表sheet1\

Worksheets(\ MsgBox \第三次隐藏工作表sheet1\

Worksheets(\ MsgBox \显示工作表sheet1\

Worksheets(\ MsgBox \第四隐藏工作表sheet1\

Worksheets(\ MsgBox \显示工作表sheet1\

Worksheets(\ MsgBox \第五隐藏工作表sheet1\

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 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

[NextPage][示例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属性) 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

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\ 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