如何在 Excel 中插入当前文件名?

如何在 Excel 中插入当前文件名?

我正在尝试使用公式查看我正在处理的 Excel 电子表格中的文件名。例如,如果文件名为 workbook1.xlsx,那么我希望单元格 A1 显示“workbook1.xlsx”

微软帮助网站提供的公式不起作用: http://office.microsoft.com/en-us/excel-help/插入当前excel文件名路径或工作表单元格中的HA010103010.aspx#BMinsert3

=MID(CELL("文件名"),SEARCH(“[”,CELL("文件名"))+1, SEARCH("]",CELL("文件名"))-SEARCH(“[”,CELL("文件名"))-1)

答案1

它在这里起作用,我刚刚在 Excel 2007 (XP) 和 Excel 2013 (Windows 8) 上进行了测试。

先单独尝试=CELL("filename")以帮助排除故障。

  • 确保已将工作簿保存到磁盘。如果将公式放入新的未保存的工作簿中,则不会显示“Book1”。

  • 您的计算机上是否使用了非英语区域设置?某些语言需要调整函数名称和公式语法(例如,在法语中,逗号必须替换为分号)。

  • 您使用的是个人电脑还是办公电脑?如果是办公电脑,可能存在用户权限限制导致的问题。

当您说“它不起作用”时,您能更具体一点吗?它是否接受键入的公式?单元格是否为空,显示“#VALUE!”等?仅使用时会发生什么=CELL("filename")

答案2

请注意,这=CELL("filename")为您提供了上次更改的工作簿/工作表因此,如果您打开了 2 个工作簿,abc 和 xyz,并且您的公式在 abc 中,如果您最后更改了 xyz 中的值,则 abc 中的公式将反映该更改并返回xyz.xlsx

因此,通常最好包含单元格引用(任何单元格引用),例如

=CELL("文件名",A1

使用该版本意味着您将只能获得公式所在工作簿的工作簿名称。

您可以使用这个稍短的版本

=REPLACE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),1,FIND("[",CELL("filename",A1)),"")

答案3

我发现这是返回文件名仅有的:

=REPLACE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),1,FIND("[",CELL("filename",A1)),"")

or - created in VBA:

Formula = "=REPLACE(LEFT(CELL(""filename"",A1),FIND(""]"",CELL(""filename"",A1))-1),1,FIND(""["",CELL(""filename"",A1)),"""")"

要返回完整路径,这将执行:

=SUBSTITUTE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),"[","")

or - created in VBA:

Formula = "=SUBSTITUTE(LEFT(CELL(""filename"",A1),FIND(""]"",CELL(""filename"",A1))-1),""["","""")"

答案4

更简单的解决方案是这样的:

在 Excel 文件中按Alt+ F11,打开 Microsoft Visual Basics for Applications (VBA)。在 VBA 中选择Insert > Module并粘贴以下代码

Public Function GetMyProp(prop As String) As String
    GetMyProp = ThisWorkbook.BuiltinDocumentProperties(prop)
End Function

在 Excel 文件中输入公式:=GetMyProp("Title")。这将在所选单元格中显示文档的标题。

相关内容