在Excel 2010中,我有一个工作簿,其中包含一列,用于标识工作簿中每个工作表的名称 . 以下公式用于此: =INDEX(SheetList,ROW())
其中SheetList是对以下公式的命名引用: =REPLACE(GET.WORKBOOK(1),1,FIND("]",GET.WORKBOOK(1))," ")
.
添加新工作表时列表会更新,但更改工作表名称或删除工作表时不会更新 . 我发现更新列表的唯一方法是将公式复制并粘贴回列的所有单元格 . 有关为什么它不自动更新,可以做什么使其自动更新,或者可能是一个热键命令使公式更新的任何想法?
2 回答
使用热键命令计算它:CTRL ALT SHIFT F9
为了使其自动更新,我们可以添加一个返回空字符串的易失函数,如
TODAY()
:=INDEX(SheetList,ROW())&IF(TODAY()=TODAY(),"")
这对我有用,并在删除或重命名工作表时自动更新,但在添加新工作表时无效(但按F9更新) .
如果可以合理地假设'the list'在C2中启动并从那里填写,则右键单击工作表的名称选项卡并选择查看代码 . 当VBE打开时,将以下内容粘贴到名为Book1 - Sheet1(Code)的代码表中 .
每当您返回(也称为激活)包含工作表列表的工作表时,列表都将更新 .