Myrna询问是否有一种方法可以使用单元格中工作表选项卡中的信息。特别是,她使用日期命名了选项卡,并希望在工作表本身中使用这些日期。

有两种方法可以解决此问题。如果工作表选项卡的名称仅包含日期(其中没有其他文本),则可以使用以下Excel公式提取日期:

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

之所以可行,是因为= CELL(“ filename”)函数返回当前文件的完整路径和名称以及工作表选项卡上的文本。

文件名本身显示在方括号中。该公式将找到右方括号的位置,并从该位置到末尾提取前八个字符。 (日期最多可以表示10个字符,例如2020年12月31日。)

使用此公式的一个警告是,如果您首先保存工作簿,它只会返回任何有价值的东西。如果您在未保存的全新工作簿中使用它,它将返回#VALUE错误。

另一种非常有吸引力的方法是创建用户定义的函数,尤其是在工作表选项卡中有其他文本的情况下。例如,假设您的工作表选项卡的名称为“ Month Ending 10-31-20”。在这种情况下,可以使用以下函数:

Function SheetName() As Date     Dim sTab As String     Application.Volatile     sTab = ActiveSheet.Name     sTab = Trim(Right(sTab, 8))

SheetName = CDate(sTab)

End Function

要在工作表中使用此功能,只需在单元格中输入以下内容:

=SheetName()

该函数返回日期序列号,因此您将需要使用一种可用的日期格式来格式化单元格。该函数起作用是因为它假定日期是工作表选项卡中文本的最后8个字符。如果您的工作表选项卡使用不同的命名约定(例如,将日期放在选项卡的开头或使用10位数字作为日期),那么您要做的就是在宏中以不同的方式拆分名称。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(6145)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: