2013-06-10 20:29:02 +0000 2013-06-10 20:29:02 +0000
14
14

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

我试图使用一个公式来查看我在Excel电子表格中工作的文件名。例如,如果文件名为workbook1.xlsx,那么我想让A1单元格显示 “workbook1.xlsx”

微软的帮助网站给出的公式不起作用 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(“文件名”),SEARCH(“[”,CELL(“文件名”))+1, SEARCH(“”]“,CELL("文件名”))-SEARCH(“[”,CELL(“文件名”))-1)

答案 (6)

14
14
14
2013-06-10 20:42:32 +0000

这里可以用,我刚刚在Excel 2007(XP)和Excel 2013(Windows 8)上测试过。

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

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

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

-您是在个人电脑上还是在工作场所的电脑上?如果是工作电脑,可能是用户权限限制导致的问题。

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

9
9
9
2013-06-10 23:35:14 +0000

请注意,=CELL("filename")给出了最后修改的工作簿/工作表的路径,所以如果你打开了2个工作簿,abc和xyz,而你的公式在abc中,如果你最后修改了xyz中的一个值,abc中的公式就会反映出来,并返回xyz.xlsx

出于这个原因,通常最好包含一个单元格引用(任何单元格引用),例如:

=CELL(“文件名”, A1 )

使用该版本意味着你只能得到其中的工作簿名称。 例如

=CELL(“filename”, A1 )

使用该版本意味着你只能得到公式所在工作簿的工作簿名。

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

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

2
2
2
2017-06-29 16:48:47 +0000

我发现这是 “最简单 "的公式,只返回_文件名:

=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),""["","""")"
1
1
1
2015-08-28 14:34:41 +0000

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

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

1
1
1
2015-01-09 16:11:13 +0000

我也遇到了同样的问题(粘贴的公式没有用)!我把公式中的,换成;后,就完美地运行了。一旦我把公式中的0x6&替换成0x6&,它就完美地工作了。

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

1
1
1
2015-01-15 10:41:26 +0000

更简单的解决办法是这样的。

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