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


13

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

Microsoft帮助网站提供的公式不起作用: http://office.microsoft.com/en-us/excel-help/insert-the-current-excel-file-name-path-or-worksheet-in-a-cell-HA010103010.aspx#BMinsert3

= MID(CELL(“filename”),SEARCH(“[”,CELL(“filename”))+ 1,SEARCH(“]”,CELL(“filename”)) - SEARCH(“[”,CELL(“filename” “)) - 1)


它以什么方式不起作用?它给出了什么输出?你保存了工作簿吗?

Answers:


14

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

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

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

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

  • 您是在个人电脑还是工作场所电脑上?如果它是一台工作计算机,则可能存在导致问题的用户权限限制。

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


我想我有一个空间或者什么,它现在有效。谢谢!
timothy.s.lau

似乎不适用于Excel 2015测试版。
Akku

确保您所在单元格的标记是通用/标准(所以不是文本/数字等)
Lexib0y

根据我的语言环境,直到我将逗号字符改为分号后才对我有用。
mavrosxristoforos

8

注意 =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)),"")


1

我有同样的问题(粘贴的公式不起作用)! 一旦我更换了 , 通过 ; 在配方中,它完美无缺。

= MID(CELL(“filename”); SEARCH(“[”; CELL(“filename”))+ 1; SEARCH(“]”; CELL(“filename”)) - SEARCH(“[”; CELL(“filename”) “)) - 1)


我相信这是因为您使用的是欧洲版的Excel。欧洲版本使用分号而不是逗号作为函数参数。我相信国际版也使用逗号。
krowe2

这不是你正在运行的excel版本的问题,而是你在区域设置中使用的“分隔符”。
deroby

1

更简单的解决方案是:

在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")。这将在所选单元格中显示文档的标题。


1

如果在荷兰语中使用excel,则应使用荷兰语函数名称并使用分号而不是逗号:

=VERVANGEN(LINKS(CEL("filename");VIND.SPEC("]";CEL("filename"))-1);1;VIND.SPEC("[";CEL("filename"));"")


1

我发现这是回归的“最简单”的公式 文件名 只要:

=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),""["","""")"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.