When什么时候用得到
做报表标题时,你想让标题自动显示「当前工作表:North」,工作表改名,标题也跟着变。
Excel 没有专门取工作表名称的函数,要用 CELL、FIND、MID 三个函数拼出来。
What这是什么
CELL("filename", A1) — 返回「文件路径 + [工作簿名称] + 工作表名称」一整串文字。
FIND — 在文字里找某个字符的位置。
MID — 从文字中间截取一段。
& — 把文字接在一起。
| 函数 | 语法 | 用途 | 例子 |
|---|---|---|---|
CELL | =CELL("filename", reference) | 取得完整路径信息 | =CELL("filename",A1) |
FIND | =FIND(find_text, within_text) | 找字符位置 | =FIND("]",CELL("filename",A1))+1 |
MID | =MID(text, start_num, num_chars) | 截取子字符串 | 见下方 |
How一步一步做
工作表名称排在 ] 后面,所以:先取整串,找到 ],再截取后面的部分。
- 1
取得完整信息
=CELL("filename",A1)。A1 可换成任意格子,取到的是它所在工作表的名称。 - 2
找到名称开始的位置
=FIND("]",CELL("filename",A1))+1。找]的位置,再加 1,就是名称的第一个字。 - 3
用 MID 截取名称
工作表名称最长 31 个字符,长度直接填 31,多截也不会错。
- 4
加上自己的文字
用
&把文字接上去。
完整公式:
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31)加上文字:
="当前工作表:"&MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31)想取其他工作表的名称,把 A1 换成那个工作表上的任意格子,例如 Sheet2 上的格子,就取到 "Sheet2"。
❌ 文件还没保存就用:返回空白,后面出错。
❌ MID 的长度填太小:名称被截断。
❌ 想取别的工作表名,却没换成那个表的格子引用。
Why为什么这样做
✅ 名称自动跟着工作表改,不用手动更新标题。
⚠️ 文件必须先保存过一次。没保存的文件没有路径,CELL("filename") 会返回空白,后面的 FIND、MID 都会出错。
Sources
Blog / Website: