专业的编程技术博客社区

网站首页 > 博客文章 正文

Excel如何获取所有类型的工作表,详细编程方法介绍

baijin 2025-01-26 21:01:34 博客文章 20 ℃ 0 评论

No.1

Excel可以创建不同类型的工作表,编程中会遇到返回某一类型的工作或所有类型的工作表,对表进行操作,那么如何得到想要的工作表呢?下面介绍一个方法。

首先要认识一下Sheets对象,它表示工作簿中所有工作表的集合。

工作表类型包括:工作表(Worksheet)、图表(Chart)、对话框(DialogSheet)等。

可在工作表名选项卡右击鼠标,插入相关类型的工作表。

如下图所示:

No.2

Sheets对象的属性和方法:

可使用Sheets.Add方法添加一个工作表。

Copy方法复制一个工作表。

Delete删除工作表。

Move移动工作表。

PrintOut打印工作表。

Select选择工作表。

具体如何操作不在本节介绍范围,下面主要讲解,如何获取所有工作表。

No.3

如上图所示,自动提取工作表类型和名称分别显示在单元格中。

本例创建了8个工作表,类型列中可看到工作表不同的分类。

单击按钮完成上述操作,下面看一下代码过程。

Private Sub GetSheets()
ActiveSheet.Cells(1, 1).Offset(1, 0).Resize(Cells.Rows.Count - 1, Cells.Columns.Count).Clear
Dim cell As Range, Carr, Narr, sn As Integer, i As Integer
sn = ThisWorkbook.Sheets.Count
ReDim Carr(0 To sn)
ReDim Narr(0 To sn)
Dim s As Object
For Each s In ThisWorkbook.Sheets'遍历工作表
    Carr(i) = TypeName(s)
    Narr(i) = s.Name
    i = i + 1
Next s
Set cell = ActiveSheet.Range("B3")
Set cell = cell.Resize(sn, 1)
cell.Value = Application.WorksheetFunction.Transpose(Carr)
With cell.Offset(0, -1)
    .Formula = "=row()-2"
    .RowHeight = 25
End With
With cell.Offset(0, 1).Resize(sn, 1)
    .Value = Application.WorksheetFunction.Transpose(Narr)
End With
Dim FiledsArr
FiledsArr = Array("序号", "表类型", "表名")
With cell.Offset(-1, -1).Resize(1, 3)
    .Value = FiledsArr
    .Interior.Color = RGB(22, 222, 255)
    .RowHeight = 25
    .Borders.Item(xlEdgeBottom).LineStyle = 1
End With
End Sub

如上代码,似乎有点太多,但大多没有什么意义。

所以只要明白下面这几行代码,就对本节内容明白了。

For Each s In ThisWorkbook.Sheets'遍历工作表
    Carr(i) = TypeName(s)'保存工作表类型到数组Carr
    Narr(i) = s.Name'保存工作表名到数组Narr
    i = i + 1
Next s

总体来说Sheets是一个不错的对象,在对表进行处理的时候会用到。

而且肯定会用到,只不过通常Excel会默认为当前工作表,即ActiveSheet。

掌握更多VBA知识,欢迎关注、收藏。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表