"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']
我有一个简单的 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']