为啥更改或删除工作表名称后,我的工作表工作表名称列表不会更新?
Posted
技术标签:
【中文标题】为啥更改或删除工作表名称后,我的工作表工作表名称列表不会更新?【英文标题】:Why won't my worksheet sheet name list update when a worksheet name is changed or deleted?为什么更改或删除工作表名称后,我的工作表工作表名称列表不会更新? 【发布时间】:2016-01-06 17:58:54 【问题描述】:在 Excel 2010 中,我有一个工作簿,其中有一列标识工作簿中每个工作表的名称。为此使用以下公式:=INDEX(SheetList,ROW())
其中 SheetList 是对以下公式的命名引用:=REPLACE(GET.WORKBOOK(1),1,FIND("]",GET.WORKBOOK(1))," ")
。
列表会在添加新工作表时更新,但不会在更改工作表名称或删除工作表时更新。我发现更新列表的唯一方法是将公式复制并粘贴回列的所有单元格中。关于它为什么不自动更新的任何想法,可以做些什么来让它自动更新,或者可能是一个热键命令来更新公式?
【问题讨论】:
【参考方案1】:如果可以合理地假设“列表”从 C2 开始并从那里向下填充,则右键单击工作表的名称选项卡并选择 查看代码。当 VBE 打开时,将以下内容粘贴到标题为 Book1 - Sheet1 (Code) 的代码表中。
Private Sub Worksheet_Activate()
Range(Cells(2, 3), Cells(Rows.Count, 3).End(xlUp)).FillDown
End Sub
每当您返回(又名激活)包含工作表列表的工作表时,该列表都会更新。
【讨论】:
【参考方案2】:使用热键命令计算它:CTRL + ALT + SHIFT + F9
为了让它自动更新,我们可以向它添加一个返回空字符串的可变函数,如TODAY()
:
=INDEX(SheetList,ROW())&IF(TODAY()=TODAY(),"")
这对我有用,并在删除或重命名工作表时自动更新,但在添加新工作表时不起作用(但通过按 F9 进行更新)。
【讨论】:
很好地使用 volatile 函数来获得正确的结果。 @Jeeped,谢谢,我很高兴收到你的来信。以上是关于为啥更改或删除工作表名称后,我的工作表工作表名称列表不会更新?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用 apache poi MS excel java android 更改工作表名称