如何在Excel公式中获取自定义文档属性(无需VBA与加载项)?
无外接加载项、无VBA场景下用Excel公式获取自定义文档属性的实现方案
完全可以实现,所有实现能力均为Excel原生内置,不存在额外依赖。
高版本Excel(365/2021及以后)直取方案
- 直接使用Excel内置的
DOCUMENTPROPERTIES函数,无任何前置配置 - 基础语法:
=DOCUMENTPROPERTIES("自定义文档属性的名称") - 支持读取所有类型的自定义文档属性:文本、数值、布尔值、日期类型的属性都可以直接返回对应值,不需要额外类型转换
- 运行特性验证:该函数完全内嵌在Excel计算引擎中,即使将宏安全级别设为最高、禁用所有第三方加载项,公式也能正常计算,不会被安全策略拦截。
低版本Excel(2019及更早无原生函数的版本)兼容方案
- 借助Excel从早期版本就内置的XLM宏表函数实现,这类函数不属于VBA代码,也不需要外接加载项,仅需通过定义名称即可调用。很多用户会误以为XLM宏表函数属于VBA代码,实际上这类函数属于Excel原生公式计算体系的一部分,全程没有脚本执行环节,不会触发宏安全校验。
- 配置步骤:
- 打开「公式」选项卡的「定义名称」面板,新建一个命名范围,比如命名为
AllCustomDocumentProps,引用位置填写=GET.DOCUMENT(10),该引用会自动返回当前工作簿所有自定义文档属性的二维数组(第一列为属性名,第二列为属性值) - 回到普通单元格,通过常规索引匹配公式定位目标属性:
=INDEX(AllCustomDocumentProps, MATCH("要读取的自定义属性名称", INDEX(AllCustomDocumentProps,0,1),0), 2)
- 打开「公式」选项卡的「定义名称」面板,新建一个命名范围,比如命名为
- 运行特性说明:该方案全程没有编写任何代码,仅用了Excel原生的定义名称功能和内置函数,即便开启最高等级的宏安全设置,公式也能正常计算,不会触发宏安全提示。
常见使用注意点
- 两种方案都不会因为第三方加载项被禁用、VBA宏被拦截而失效,所有计算逻辑不脱离Excel原生计算能力
- 低版本方案的宏表函数在受保护视图中打开文件时,会显示上次保存时缓存的属性值,进入编辑状态后会自动刷新为最新值
- 如果自定义文档属性设置为「链接到单元格内容」的动态属性,公式读取的值会和关联的源内容保持同步更新,不需要手动触发重算
内容的提问来源于stack exchange,提问作者Anonymous
相关产品推荐
相关产品推荐

