当前位置:首页 > Excel VBA教程 > 工作表(Worksheet)基本操作应用示例

工作表(Worksheet)基本操作应用示例

来源:Excel中文网 作者:Excelcn 发布时间:2006-12-21
在编写代码时,经常要引用工作表的名字、知道工作表在工作簿中的位置、增加工作表、删除工作表、复制工作表、移动工作表、重命名工作表,等等。下面介绍与此有关及相关的一些属性和方法示例。

[示例04-01]增加工作表(Add方法)
Sub AddWorksheet()
  MsgBox "在当前工作簿中添加一个工作表"
  Worksheets.Add
  MsgBox "在当前工作簿中的工作表sheet2之前添加一个工作表"
  Worksheets.Add before:=Worksheets("sheet2")
  MsgBox "在当前工作簿中的工作表sheet2之后添加一个工作表"
  Worksheets.Add after:=Worksheets("sheet2")
  MsgBox "在当前工作簿中添加3个工作表"
  Worksheets.Add Count:=3
End Sub
示例说明:Add方法带有4个可选的参数,其中参数Before和参数After指定所增加的工作表的位置,但两个参数只能选一;参数Count用来指定增加的工作表数目。

[示例04-02]复制工作表(Copy方法)
Sub CopyWorksheet()
  MsgBox "在当前工作簿中复制工作表sheet1并将所复制的工作表放在工作表sheet2之前"
  Worksheets("sheet1").Copy Before:=Worksheets("sheet2")
  MsgBox "在当前工作簿中复制工作表sheet2并将所复制的工作表放在工作表sheet3之后"
  Worksheets("sheet2").Copy After:=Worksheets("sheet3")
End Sub
示例说明:Copy方法带有2个可选的参数,即参数Before和参数After,在使用时两个参数只参选一。

[示例04-03]移动工作表(Move方法)
Sub MoveWorksheet()
  MsgBox "在当前工作簿中将工作表sheet3移至工作表sheet2之前"
  Worksheets("sheet3").Move Before:=Worksheets("sheet2")
  MsgBox "在当前工作簿中将工作表sheet1移至最后"
  Worksheets("sheet1").Move After:=Worksheets(Worksheets.Count)
End Sub
示例说明:Move方法与Copy方法的参数相同,作用也一样。

[示例04-04]隐藏和显示工作表(Visible属性)
[示例04-04-01]
Sub testHide()
  MsgBox "第一次隐藏工作表sheet1"
  Worksheets("sheet1").Visible = False
  MsgBox "显示工作表sheet1"
  Worksheets("sheet1").Visible = True
  MsgBox "第二次隐藏工作表sheet1"
  Worksheets("sheet1").Visible = xlSheetHidden
  MsgBox "显示工作表sheet1"
  Worksheets("sheet1").Visible = True
  MsgBox "第三次隐藏工作表sheet1"
  Worksheets("sheet1").Visible = xlSheetHidden
  MsgBox "显示工作表sheet1"
  Worksheets("sheet1").Visible = xlSheetVisible
  MsgBox "第四隐藏工作表sheet1"
  Worksheets("sheet1").Visible = xlSheetVeryHidden
  MsgBox "显示工作表sheet1"
  Worksheets("sheet1").Visible = True
  MsgBox "第五隐藏工作表sheet1"
  Worksheets("sheet1").Visible = xlSheetVeryHidden
  MsgBox "显示工作表sheet1"
  Worksheets("sheet1").Visible = xlSheetVisible
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 "当前工作簿的工作表数为:" & Chr(10) & i
End Sub

[示例04-05-02]
Sub WorksheetNum()
  Dim i As Long
  i = Sheets.Count
  MsgBox "当前工作簿的工作表数为:" & Chr(10) & i
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个工作表的名字为:" & sName
  sChangeName = "我的工作表"
  MsgBox "将当前工作簿中的第3个工作表名改为:" & sChangeName
  Worksheets(3).Name = sChangeName
End Sub
示例说明:使用Name属性可以获取指定工作表的名称,也可以设置工作表的名称。

[示例04-06-02]重命名工作表
Sub ReNameSheet()
   Dim xStr As String
Retry:
   Err.Clear
   xStr = InputBox("请输入工作表的新名称:" _
       , "重命名工作表", ActiveSheet.Name)
   If xStr = "" Then Exit Sub
   On Error Resume Next
   ActiveSheet.Name = xStr
   If Err.Number <> 0 Then
     MsgBox Err.Number & " " & Err.Description
     Err.Clear
     GoTo Retry
    End If
    On Error GoTo 0
    '.........
 End Sub

| 网站地图 All Rights Reserved. Powered by Excel中文网