咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

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知识,欢迎关注、收藏。