【函数兼容性】SHEETNAME如何兼容
WPS专有函数sheetname只能在WPS中使用,工作中经常将包含这个函数的文档发给客户或上下级单位,接收人员打开包含了sheetname函数的表格就不淡定了。
乱了!通通的都显示错误!
举例文档中为FILTER(源数据,条件=sheetname)这样的公式,那么非WPS(Excel、永中、vole、腾讯文档、飞书文档及其他等)
还有更多没见过的打开方式....
如何破解这种尴尬的场景呢?
搜索了很多资料,发现WPS的专用函数SHEETNAME在Excel上属于被遗弃的函数,早在1992年的Excel 4.0的vba中就支持这个函数了,现在的Excel出于兼容性保留,但官方不再推荐或更新,也不会有任何提示。
现在要使用这个函数也不再只能进vba,使用定义名称即可间接调用,同时可以使用CELL函数直接使用。
其他小众office暂时没有考虑,包括需要联网使用的飞书、腾讯文档等,下面是解决适用范围最广的Excel中如何解决:
功能:显示当前工作表名
WPS
公式:=SHEETNAME()
Excel
公式1:=TEXTAFTER(CELL("filename",A1),"]",-1)
公式2:=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)
使用规则:
CELL必须带第二参数 A1(或任意单元格),否则跨表时可能不更新
文件必须已保存(未保存时 CELL 返回结果为空)
功能:获取所有工作表名
WPS
公式:=SHEETSNAME(,0)
Excel
要提前在名称管理器中定义名称
名称:SHEETNAME
引用位置:=GET.WORKBOOK(1)&T(NOW())
公式:
=SHEETNAME得到的结果包含了文件名,
用TEXTAFTER加工下=TEXTAFTER(SHEETNAME,"]")即可得到与WPS=SHEETNAME(,0)相同的结果,
而且定义名称的方法在WPS中也可以正常使用。
总结:
显示当前工作表名:
=SHEETNAME()
仅适配于2024年8月18166正式版(17121内测版)及后的新版本。
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)
适配Excel 97及后续版本,WPS 2011及后续版本,兼容性及其优秀。
获取所有工作表名:
=SHEETNAME(,1)
仅适配于2024年8月18166正式版(17121内测版)及后的新版本。
定义名称
适配
1992年,Excel 4.0及以后所有的Excel版本
WPS 2013 专业版及以后的所有版本。
至于飞书文档、腾讯文档等需要网络支持、永中office、vole等基本不再考虑如何兼容,接收文档显示错误的就回复给他“你用的软件非主流,不支持这个功能,请使用WPS office”
VBA宏实现这个功能就交给代码大佬来解决吧。


Lv.3优质创作者