首页 文章

列出Excel电子表格的特定工作表名称

提问于
浏览
0

我有一个有点工作的解决方案,从excel电子表格中检索所有工作表名称,而不使用宏或VBA . 我找到了几个解决方案,但他们都要求将文件保存为启用宏的电子表格或外部工具 .

到目前为止我的解决方案是:我的第一张表格被称为'第一张'而我的最后一张表被称为'最后一张' . 在我之间我有几张随机名称的表格 . 介于两者之间的这些纸张在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

1 回答

  • 1

    这只是一个替代方案:

    在每张表的 A1 中输入:

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

    在第一张纸的 A2 中输入:

    =TEXTJOIN("*",TRUE,First:Last!A1)
    

    在第一张纸的 A3 中输入:

    =TRIM(MID(SUBSTITUTE(A$2,"*",REPT(" ",999)),ROWS($1:1)*999-998,999))
    

    并复制下来:

    enter image description here

    (我不知道这是否更简单 . )

相关问题