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