我有一个有点工作的解决方案,可以在不使用宏或VBA的情况下从Excel电子表格中检索所有工作表名称。我找到了几个解决方案,但他们都要求将文件保存为启用宏的电子表格或外部工具。
我的解决方案到目前为止: 我的第一张名为'First',我的最后一张名为'Last'。在我之间我有几张随机名称的表格。介于两者之间的这些纸张在A1 Cell中具有以下公式:
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)&"\"
第一张纸在B1中有以下公式:
="\" &CONCAT(First:Last!$A$1)
在B2到Bx中有以下公式:
=IF(ISERROR(FIND(CHAR(1),SUBSTITUTE($B$1,"\",CHAR(1),ROW()))),"",MID($B$1,FIND(CHAR(1),SUBSTITUTE($B$1,"\",CHAR(1),ROW()-1))+1,FIND(CHAR(1),SUBSTITUTE($B$1,"\",CHAR(1),ROW()))-FIND(CHAR(1),SUBSTITUTE($B$1,"\",CHAR(1),ROW()-1))-1))
解释一下:
FIND(CHAR(1),SUBSTITUTE($B$1,"\",CHAR(1),ROW()-1))
相对于该行,$ B $ 2中出现字符串“\”。在A2中,这是第一次出现。
LEN($B$1)-LEN(SUBSTITUTE($B$1,"\",""))
获取$ B $ 2中出现的“\”
ISERROR(FIND(CHAR(1),SUBSTITUTE($B$1,"\",CHAR(1),ROW())))
使值为空,因此可以从中创建动态命名范围。我将工作表用于下拉列表和图表
对于最终用户,我隐藏了第一个和最后一个标签,这样它们就不会意外地破坏表格。 不知怎的,这一切都有效,但也许任何人都有更好的解决方案。看起来有点矫枉过正。有谁知道更好的解决方案??
日Thnx, Jorden