Excel文件跨电脑复制后公式出现#BLOCKED!错误的原因
Office 16下XLM宏表函数返回
#BLOCKED!错误触发原因 核心触发逻辑
你遇到的是Office 16(即Office 2016/365及后续迭代版本)默认安全策略对XLM宏表函数的拦截问题,和公式本身写法无关:
- 你用的
GET.WORKBOOK()是Excel 4.0时代遗留的宏表函数,不属于原生工作表函数,所有这类函数的调用都会被Office安全模块纳入宏类行为扫描 - 你在本地新建文件测试相同公式不报错,是因为新建文件属于本地受信任文件,没有跨设备传输带来的安全标记,也没有格式层面的宏权限限制
- 点击公式栏确认、按
CTRL+ALT+F9触发全量重算时才报错,是因为这类操作会强制触发全公式扫描,安全模块检测到未授权的宏表函数调用后,会直接返回#BLOCKED!拦截错误,和你描述的现象完全匹配
具体触发原因(按出现概率排序)
- 跨设备文件的外部锁定标记未解除
Windows系统会自动给所有从其他设备、网络路径传输过来的文件添加「外部来源」安全标记,Office打开带这类标记的文件时,会默认禁用所有宏相关功能(包括XLM宏表函数),哪怕文件里没有编写VBA代码。原存储电脑上因为文件是本地创建的,不存在这个标记,所以从来不会触发报错。 - 文件扩展名与内容类型不匹配
带XLM宏表函数的文件按规范需要保存为.xlsm(启用宏的工作簿)格式,如果原文件被存为.xlsx格式,旧版本Office可能做兼容性放行,但Office 16的安全策略会直接拦截非宏格式文件内的宏类函数调用,直接返回拦截错误。 - 新设备的受信任配置不匹配
原存储电脑大概率已经将该文件所在文件夹加入了Office受信任位置,或者单独开启了该文件的XLM宏运行权限;新设备Office默认对非受信任位置的文件关闭XLM宏运行权限,触发拦截。
快速验证方案
- 关闭当前Excel文件,找到文件所在位置,右键打开「属性」面板,在「常规」选项卡底部如果看到「此文件来自其他计算机,可能被阻止以帮助保护该计算机」的提示,勾选提示旁的「解除锁定」选项,点击应用后重新打开文件测试
- 检查文件后缀,如果当前是
.xlsx格式,将文件另存为.xlsm启用宏格式后重新打开测试 - 如果以上操作都无效,可将文件所在文件夹加入Excel信任中心的受信任位置列表,再重新打开测试
内容的提问来源于stack exchange,提问作者Peter Mac
相关产品推荐
相关产品推荐

