我有一個簡單的Excel工作表,它需要更新工作表中的命名範圍。由於openpyxl不直接做到這一點,我需要刪除舊的範圍,然後創建一個新的範圍(基於舊的範圍):嘗試使用openpyxl刪除named_range時出現「沒有全局定義的名稱」
rng = wb.get_named_range('range')
wb.remove_named_range(rng)
wb.create_named_range('range', ws0, '$A$21:$A$' + str(highRow+1))
已經有在名爲「範圍內的工作簿中的範圍「,我試圖將範圍應用到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$21:$A$22', functionGroupId=None, function=None, statusBar=None, help=None, comment=None"
我不是引用命名範圍是否正確?
,完美的工作。現在我不確定'remove_named_range'的用途,但是謝謝! –
這是遺留代碼,會在某個時候消失。最初的實現將所有定義的名稱視爲單元格範圍,但事實並非如此,它也不是Pythonic。 –