"No globally defined name" 尝试使用 openpyxl 删除 named_range 时

"No globally defined name" when trying to removed a named_range using openpyxl

我有一个简单的 Excel sheet 需要更新 sheet 中的命名范围。由于 openpyxl 不直接这样做,我需要删除旧范围,然后创建一个新范围(基于旧范围):

rng = wb.get_named_range('range')
wb.remove_named_range(rng)
wb.create_named_range('range', ws0, '$A:$A$' + str(highRow+1))

工作簿中已经有一个名为 "range" 的范围,我尝试将范围应用到的工作sheet 是 ws0,而 highRow 只是 ws0 的最大行.

当我 运行 时,我在 wb.remove_named_range(rng) 收到以下错误:

KeyError: "No globally defined name \nParameters:\ncustomMenu=None, workbookParameter=None, shortcutKey=None, description=None, vbProcedure=None, xlm=None, publishToServer=None, hidden=None, name='range', localSheetId=None, attr_text='Ranges!$A:$A', functionGroupId=None, function=None, statusBar=None, help=None, comment=None"

我没有正确引用命名范围吗?

您需要按名称删除范围:

del wb.defined_names['range']