如何阻止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
相关产品推荐
相关产品推荐

