Excel公式返回工作表名称是什么?

时间:2015-02-01 17:27:23

标签: excel-formula excel-2013

我搜索了excel函数文档和一般的MSDN搜索,但是在没有VBA的情况下找不到返回工作表名称的方法。

有没有办法在excel公式中获取工作表名称而无需求助于VBA?

8 个答案:

答案 0 :(得分:11)

excel不是很好,但我找到了这些here

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

A1可以是工作表中的任何非错误单元格 有关工作表的完整路径和名称,请使用

=CELL("filename",A1)

答案 1 :(得分:4)

对于最新版本的Excel,公式语法为:

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

答案 2 :(得分:3)

以下将隔离工作表名称:

=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))

答案 3 :(得分:1)

我已经打开了一个模块,所以我做了一个自定义功能:

Public Function Sheetname (ByRef acell as Range) as string
Sheetname = acell.Parent.Name 
End Function 

答案 4 :(得分:0)

在其他答案中给出的公式均不支持文件路径中包含字符]的情况。

以下公式较为复杂,但可以正确处理此类情况:

 =MID(CELL("filename",A1),FIND("]",CELL("filename",A1),FIND("?",SUBSTITUTE(CELL("filename",A1),"\","?",LEN(CELL("filename",A1))-LEN(SUBSTITUTE(CELL("filename",A1),"\","")))))+1,LEN(CELL("filename",A1)))

答案 5 :(得分:0)

文件名中带有方括号']',因此需要根据以下内容修改以上公式,以查找最后出现的方括号。 验证此方法适用于文件名/路径中的0.1或多个方括号。

=RIGHT(CELL("filename"),LEN(CELL("filename")) - FIND("]]]",SUBSTITUTE(CELL("filename"),"]","]]]",LEN(CELL("filename"))-LEN(SUBSTITUTE(CELL("filename"),"]","")))))
  1. 使用替代函数替换所有方括号,然后将结果的长度与文件名的长度进行比较,以识别文件名中的方括号数。
  2. 使用出现的方括号数将最后一个方括号替换为3个连续的方括号']]]'
  3. 使用“查找”功能来识别字符串中3个方括号的位置
  4. 从完整路径的长度中减去3个方括号的位置
  5. 使用结果获取最正确的字符(即工作表名称)

上面关于首先保存工作簿的先前评论也是关键,因为否则您将收到#Value!结果。

答案 6 :(得分:0)

这是一个合理的简称,它有几个附加的优点:

  • 通过使用经常被忽略的REPT函数进行反向查找(大多数其他答案都指向错误的方向)。
  • A1似乎是一个糟糕的选择,因为与errors相比,$FZZ$999999的可能性要高得多。
  • 别忘了绝对。由于引用的更改,复制和粘贴其他一些示例可能会出错。
  • ?是有意的,因为它不应该位于文件路径中。

=SUBSTITUTE(RIGHT(SUBSTITUTE(CELL("Filename",$FZZ$999999), "]",REPT("?", 999)), 999),"?","")

答案 7 :(得分:-2)

我很确定你可以用谷歌搜索这个。我刚刚做了,这是我第一件事。

In Excel it is possible to use the CELL function/formula and the MID and FIND to return the name of an Excel Worksheet in a Workbook. The formula below shows us how;

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

Where A1 is any non error cell on the Worksheet. If you want the full path of the Excel Workbook, simply use;

=CELL("filename",A1)

唯一的问题是你必须保存文件才能正常工作!