如何在不保存的情况下关闭Excel时回滚另一个文件?


0

我有一个带有宏的Excel电子表格,它将一些单元格值写入文本文件。当任何这些单元格值更改时,将触发宏并更新文本输出。

但是,如果用户随后决定关闭电子表格而不保存更改,则不会触发宏,并且文本输出不会更新到更改之前的状态。

澄清问题的一个简单例子:

  • 说单元格B3持有字符串“Beer”
  • 然后用户将此单元格编辑为“Wine”
  • 宏检测到更改并将文本文件更新为“Wine”
  • 如果用户然后关闭Excel而不保存更改,单元格B3显然会变回“啤酒”( 但是,由于Excel正在关闭,因此仅在下次打开电子表格时才可见 ) ...但文本文件继续显示“Wine”,因为关闭Excel而不保存显然不会导致任何可用于触发宏的更改事件。甚至从Workbook_BeforeClose或Workbook_Deactivate事件调用宏也不会将“Wine”的文本输出刷新回“Beer”

有什么建议我如何回滚文本输出?


如果文件在未保存的情况下关闭,则用户所做的更改也不会保存。你期望发生什么?
teylyn

Answers:


0

只需要一些额外的代码,我设法使工作如下:

  • 当Excel打开时,VBA宏将创建TEXT FILE并立即将其复制到文件TEXT COPY
  • 当用户进行更改时,TEXTFILE会更新,但TEXTCOPY不会更新
  • 当用户保存更改时,TEXTCOPY会更新
  • 当用户退出Excel而不保存时,将删除TEXTFILE并将TEXTCOPY重命名为TEXTFILE
  • 当用户通过保存关闭Excel时,将删除TEXTCOPY
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.