更改或删除工作表名称时,为什么我的工作表表名称列表更新?

时间:2016-01-06 17:58:54

标签: excel

在Excel 2010中,我有一个工作簿,其中包含一个列,用于标识工作簿中每个工作表的名称。以下公式用于此:=INDEX(SheetList,ROW())其中SheetList是对以下公式的命名引用:=REPLACE(GET.WORKBOOK(1),1,FIND("]",GET.WORKBOOK(1))," ")

列表会在添加新工作表时更新,但在更改工作表名称或删除工作表时不会更新。我发现更新列表的唯一方法是将公式复制并粘贴回列的所有单元格。关于它为什么不自动更新,可以做些什么来使其自动更新,或者可能是用于使公式更新的热键命令的任何想法?

2 个答案:

答案 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 更新)。