获取特定工作表名称的功能

时间:2013-04-17 11:24:47

标签: excel function excel-vba vba

我有一个具有以下外观的工作簿:

enter image description here

此工作簿第一张工作表“Resultat”计算工作簿中其他工作表的数据,并按照图片显示。

为了使计算正常工作,标记的红色方块中显示的名称必须相同且相应,否则值将为#####,因为您可以看到条目号2(单元格A5工作和与工作表编号2具有相同的名称,但单元格A8不起作用,因为它与工作表编号3不同。

我的问题基本上是,是否可以使用将在特定单元格中输入工作表名称的函数。在此示例中,我希望cell A5自动获取包含index 2的工作表名称,cell A8等于包含index 3的工作表,依此类推。

现在我手动执行此操作,但如果这可以自动化将是一个很大的帮助,因为我有很多这些工作簿,名称不时更改。

2 个答案:

答案 0 :(得分:4)

使用此公式

=MID(CELL("filename",A1), FIND("]", CELL("filename", A1))+ 1, 255)

以上将为您提供当前工作表的名称

如果您将A1的引用更改为相关工作表,那么它将获取该名称。

例如:

=MID(CELL("filename",Sheet1!A1), FIND("]", CELL("filename", Sheet1!A1))+ 1, 255)

这将为您提供Sheet1

答案 1 :(得分:1)

创建VBA模块并输入以下代码:

Public Function SheetNameByIndex(Index As Integer) As String
    SheetNameByIndex = ActiveWorkbook.Sheets(Index).Name
End Function

现在,您可以在工作簿中的任何位置执行

=sheetnamebyindex(2)
=sheetnamebyindex(A1)