You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止Excel为openpyxl生成的自定义溢出函数添加@符号

自定义VBA溢出函数被Excel自动添加@符号的问题

我需要运行一个能多行多列溢出的自定义VBA函数,但用openpyxl生成工作簿并写入=MYFUNCTION()(或=_xludf.MYFUNCTION())后,用Excel打开文件时函数会被自动替换成=@MYFUNCTION(),导致无法正常实现溢出效果。

以下代码可正常生成工作簿,但Excel打开时会自动修改函数名称,我需要让任何下载该文件的用户都能正常触发溢出:

from openpyxl import load_workbook, Workbook

template_workbook = load_workbook("excel_file_with_vba.xlsm", keep_vba=True)

workbook = Workbook()
workbook.vba_archive = template_workbook.vba_archive
workbook.active = True

ws = workbook.worksheets[0]
ws.active = True
ws["A1"] = "=_xludf.MYFUNCTION()"
ws["A2"] = "=MYFUNCTION()"

workbook.save("test.xlsm")

运行上述代码生成的文件,在Excel中打开后仍显示=@MYFUNCTION()。

我试过针对内置函数的@符号解决方案,但对自定义函数无效;也尝试了添加自定义函数前缀_xludf,结果没有任何改善。


内容的提问来源于stack exchange,提问作者Cras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 03:05:11