更多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 CELL的info_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技巧网许可
联系客服