尝试使用openpyxl删除named_range时,“没有全局定义的名称”

时间:2017-04-03 20:38:04

标签: python excel openpyxl

我有一个简单的Excel工作表,需要更新工作表中的命名范围。由于openpyxl不直接执行此操作,因此我需要删除旧范围,然后创建一个新范围(基于旧范围):

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

工作簿中已有一个名称为“range”的范围,我正在尝试应用范围的工作表是ws0,而highRow只是ws0的最大行。

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

  

KeyError:“没有全局定义的名称   \ 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 $ 21:$ A $ 22',functionGroupId = None,function = None,   statusBar =无,帮助=无,评论=无“

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

1 个答案:

答案 0 :(得分:0)

您需要按名称删除范围:

del wb.defined_names['range']