1

我正在尝试将工作表中的工作表从一个工作簿复制到另一个工作簿,但是因为我的工作簿中可能已经有此工作表的先前版本,所以我想先检查它是否存在,然后在复制之前先将其删除。但是,在执行 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
4

1 回答 1

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 开发人员之一。

于 2014-04-17T04:45:57.733 回答