程序猿

如何获取Excel文件所在的路径?

01-29 21:43 首页 Excel技巧网

更多Excel/Word/PPT教程

请点左下角的“阅读原文”


如何获取Excel文件所在的路径


在处理Excel文件信息时,有时候需要获取当前文件所在的路径。比如文件“疑难197如何获取文件所在的路径.xlsx”保存在“D:\疑难千寻千解函数分册\CD示例\”路径下,如何使用函数获取其路径信息呢?


→ 解决方案:

使用CELL函数获取文件路径。


→ 操作方法

双击打开文件“疑难197如何获取文件所在的路径.xlsx”,在空白单元格(比如B1)输入下列公式,按Enter键结束。

=REPLACE(CELL("filename",A1),FIND("[",CELL("filename",A1)),255,)

公式结果如 197‑1所示。

197‑1获取文件路径


→ 原理分析

获取单元格位置、格式、内容信息

本例使用CELL("filename",A1)获取包含文件名的全路径信息:

"D:\疑难千寻千解函数分册\CD示例\[疑难 188 如何获取文件所在的路径.xlsx]Sheet1"

然后使用FIND函数查找"["的位置,最后使用REPLACE函数将"["及其之后的所有字符替换为空,即得出文件所在的路径。

CELL函数用于返回有关单元格的格式、位置或内容的信息。语法如下:

CELL(info_type, [reference])

其中,第1参数info_type为一个指定要返回的单元格信息类型的文本值。如表格 197‑1所示,显示了 info_type 参数的可能值及相应的结果。第2参数reference为需要其相关信息的单元格(仅取左上角的单元格),如果省略,则默认指向最后更改的单元格。


表格 197‑1 CELLinfo_type 参数及其返回值说明

类型

info_type参数

返回值说明

位置

"address"

引用中第一个单元格的引用,文本类型。

"row"

引用中单元格的行号。

"col"

引用中单元格的列标。

"filename"

包含引用的文件名(包括全部路径),文本类型。如果包含目标引用的工作表尚未保存,则返回空文本 ("")

格式

"color"

如果单元格中的负值以不同颜色显示,则为值 1;否则,返回 0(零)。

"format"

与单元格中不同的数字格式相对应的文本值。如表格 197‑2所示,列出了不同格式的文本值。如果单元格中负值以不同颜色显示,则在返回的文本值的结尾处加“-”;如果单元格中为正值或所有单元格均加括号,则在文本值的结尾处返回“()”。

"parentheses"

如果单元格中为正值或所有单元格均加括号,则为值 1;否则返回 0

"prefix"

与单元格中不同的“标志前缀”相对应的文本值。如果单元格文本左对齐,则返回单引号  (');如果单元格文本右对齐,则返回双引号 (");如果单元格文本居中,则返回插入字符 (^);如果单元格文本两端对齐,则返回反斜线 (\);如果是其他情况,则返回空文本 ("")

"protect"

如果单元格没有锁定,则为值 0;如果单元格锁定,则返回 1

"type"

与单元格中的数据类型相对应的文本值。如果单元格为空,则返回“b”。如果单元格包含文本常量,则返回“l”;如果单元格包含其他内容,则返回“v”。

"width"

取整后的单元格的列宽。列宽以默认字号的一个字符的宽度为单位。

内容

"contents"

引用中左上角单元格的值:不是公式。

CELL函数的info_type 参数为“format”,以及reference 参数为用内置数字格式设置的单元格时, CELL函数返回的文本值,如表格 197‑2所示。

表格 197‑2单元格格式代码与CELL返回值对应表

单元格格式

CELL函数返回值

常规

"G"

0

"F0"

#,##0

",0"

0.00

"F2"

#,##0.00

",2"

$#,##0_);($#,##0)

"C0"

$#,##0_);[Red]($#,##0)

"C0-"

$#,##0.00_);($#,##0.00)

"C2"

$#,##0.00_);[Red]($#,##0.00)

"C2-"

0%

"P0"

0.00%

"P2"

0.00E+00

"S2"

# ?/?  # ??/??

"G"

yy-m-d  yy-m-d  h:mm  dd-mm-yy

"D4"

d-mmm-yy  dd-mmm-yy

"D1"

mmm-yy

"D2"

d-mmm  dd-mmm

"D3"

dd-mm

"D5"

h:mm AM/PM

"D7"

h:mm:ss AM/PM

"D6"

h:mm

"D9"

h:mm:ss

"D8"

CELL函数获取单元格数字格式信息的功能较为有限,而且返回的文本值与格式代码存在“一对多”关系,不能直观返回其格式代码。使用宏表函数GET.CELL可以如实获取单元格数字格式代码。


→ 知识扩展

CELL无法正确返回文件路径的原因

如果工作簿中只有一个工作表,并且工作表名称与工作簿名相同时,CELL函数返回的值为:路径\工作簿名.xlsx,因此FIND("[",CELL("filename",A1))找不到"[",出现#VALUE!错误,此时可以采用如下公式获取文件路径:

=REPLACE(CELL("filename",A1),FIND("*",SUBSTITUTE(CELL("filename",A1),"\","\*",LEN(CELL("filename",A1))-LEN(SUBSTITUTE(CELL("filename",A1),"\",)))),255,)


版权所有 转载须经Excel技巧网许可


【 Excel 】:工作簿可能有哪些个人信息?如何清除?


首页 - Excel技巧网 的更多文章: