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

工作表类型包括:工作表(Worksheet)、图表(Chart)、对话框(DialogSheet)等。
可在工作表名选项卡右击鼠标,插入相关类型的工作表。
如下图所示:
No.2Sheets对象的属性和方法:

可使用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知识,欢迎关注、收藏。
制图网(www.makepic.net),专业的logo免费设计在线生成网站,全自动智能化logo设计,商标设计,logo在线生成!
欢迎使用制图网制作属于您公司自己的logo,不仅专业而且经济实惠,全方位满足您公司品牌化、视觉化的需求。
只需简单一步,使用微信扫码(或长按识别二维码)并在任一小程序首页根据提示获取激活码!
chatGPT中文网页版,无需注册,快来体验全网最火爆的人工智能应用!
只需简单一步,使用微信扫码(或长按识别二维码)并在任一小程序首页根据提示获取激活码!
chatGPT中文网页版,无需注册,快来体验全网最火爆的人工智能应用!