分享

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

 恶猪王520 2018-01-30

更多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 】:工作簿可能有哪些个人信息?如何清除?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多