我有一个简单的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 =无,帮助=无,评论=无“
我没有正确引用命名范围吗?
答案 0 :(得分:0)
您需要按名称删除范围:
del wb.defined_names['range']