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

使用OpenPyXL在Python中写入Excel VLOOKUP公式遇#NAME错误求助

问题解决:OpenPyXL写入VLOOKUP后Excel显示#NAME错误

核心原因

出现#NAME错误是因为Excel无法识别公式中的Table1引用——即便公式文本正确,OpenPyXL写入时未完成名称与Excel表格对象的关联,导致打开文件后Excel无法解析该名称。

解决方法

方法1:改用明确的单元格区域引用

如果Table1只是普通命名区域而非正式Excel表格,直接替换为工作表+单元格范围:

# 替换Sheet1和A1:C100为实际的工作表名称和数据区域
for row in range(2, wrkbook.active.max_row + 1):
    wrkbook.active[f'B{row}'].value = f'=VLOOKUP(A{row},Sheet1!$A$1:$C$100,2,FALSE)'

方法2:用OpenPyXL创建正式Excel表格并使用结构化引用

如果要保留Table1作为表格名称,需先通过OpenPyXL创建正式的ListObject(Excel表格),再使用结构化引用格式:

from openpyxl.worksheet.table import Table, TableStyleInfo

# 1. 创建Table1表格对象(替换A1:C100为实际数据区域)
table = Table(displayName="Table1", ref="A1:C100")
# 可选:添加表格样式
style = TableStyleInfo(name="TableStyleMedium9", showRowStripes=True)
table.tableStyleInfo = style
wrkbook.active.add_table(table)

# 2. 写入带结构化引用的VLOOKUP公式
for row in range(2, wrkbook.active.max_row + 1):
    wrkbook.active[f'B{row}'].value = f'=VLOOKUP(A{row},Table1[#All],2,FALSE)'

方法3:确认名称已正确定义

如果Table1是手动创建的命名区域,需确保在工作簿的名称管理器中已正确定义,且OpenPyXL写入公式时名称拼写完全一致(区分大小写)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 15:55:04