一个工作簿里有很多工作表,想要提取当前工作簿的所有工作表名称,你会怎么操作?
过去的我,可能会一个个手动去编辑提取,花了不少时间和精力去完成,工作这么努力,差点把自己感动哭了。可是,后来才知道,我那是白瞎折腾。原来,提取当前工作簿的所有工作表名称几个简单步骤就可以批量快速搞定,简直太方便了。
今天给大家分享两种方法快速批量提取所有工作表名称的Excel技巧:一种是使用公式法实现,一种是使用VBA代码实现。
现在我们举实例说明一下操作方法。
比如,以下表格,一个工作簿中有多个工作表。现要批量提取工作表名称。
一、公式法
1、定义名称
点击菜单的【公式】—【定义名称】,打开【新建名称】对话框,在【名称】处输入一个定义名称,本例输入:sheetname,方便后面在工作表中引用;在【引用位置】处输入:=GET.WORKBOOK(1),然后点击【确定】。
说明:GET.WORKBOOK是宏表函数,不能直接在单元格中使用,只能定义名称后,使用名称得到结果。=GET.WORKBOOK(1) 列出当前工作簿中的所有工作表名称。
2、输入公式
在第一个工作表的A1单元格输入以下公式:
=IFERROR(INDEX(sheetname,ROW(A1)),"")
然后公式下拉填充,知道出现空白即停止。
说明:公式里的IFERROR函数的作用是用来屏蔽错误值,让结果更整洁。
到这里,我们可以看到公式用INDEX函数提取出来的工作表名称是带有工作簿名称的,我们需要将工作簿名称去掉,保留工作表名称就可以。
3、去掉工作簿名称
在B1单元格里输入工作表名称,输入完后回车。然后按CTRL+E即可快速填充下面所有单元格的内容。
现在所有工作表名称就都提取出来了。
二、VBA法
右击工作表名称—【查看代码】,打开VBA代码编辑器,输入以下代码:
Sub GetSheetName()
Dim sht As Worksheet
Dim i As Integer
i = 1
For Each sht In Sheets
Cells(i, 1) = sht.Name
i = i + 1
Next
End Sub
然后点击绿色运行按钮,
即可在A列批量生成所有工作表的名称。