我正在尝试将一个工作簿中的工作簿复制到另一个工作簿中,但因为我的工作簿中可能已经有此工作表的先前版本,所以我想首先检查它是否存在并在复制之前先将其删除。但是,执行remove_sheet时会出现错误(尽管表单已被删除)。有任何想法吗? (顺便说一句,这不是文件中唯一的表 - 所以不是那个问题)
def import_sheet(book_from, book_to ,sheet_to_cpy):
active_wkbk(book_to)
if sheet_to_cpy in all_sheets(True):
remove_sheet(sheet_to_cpy)
active_wkbk(book_from)
copy_sheet(book_to, sheet_to_cpy)
File "blah.py", line 22, in import_sheet
remove_sheet(sheet_to_cpy)
File "27/basic_io.py", line 1348, in remove_sheet
File "27/basic_io.py", line 1215, in active_sheet
NameError: MyTab is not an existing worksheet
答案 0 :(得分:2)
这是我们最终的错误 - 我们会尽快修复它!
与此同时,这是一个解决方法:
def import_sheet(book_from, book_to, sheet_to_cpy):
active_wkbk(book_to)
if sheet_to_cpy in all_sheets(True):
if sheet_to_cpy == active_sheet():
## avoid bug by manually setting last sheet active
active_sheet(all_sheets()[-1])
remove_sheet(sheet_to_cpy)
active_wkbk(book_from)
copy_sheet(book_to, sheet_to_cpy)
来源:我是DataNitro开发人员之一。