Excel VBA aftersave事件不起作用
我有这张表,我想每次保存原始表单时都要复制一份。
为了达到这个目的,我试图在ThisWorkBook
上使用AfterSave
来调用模块上的macros。
代码如下:
Private Sub Workbook_AfterSave(ByVal Success As Boolean) If Success Then Application.EnableEvents = False Call CopiarNovaPlanilha Application.EnableEvents = True End If End Sub
Application.EnableEvents
只是为了避免在这里学到的循环。 这里是模块内的macros:
Sub CopiarNovaPlanilha() ActiveWorkbook.SaveCopyAs "I:\CGP\DEOPEX\01 - Supervisão\10 - Alocação das equipes\Consulta Alocados\ALOCACAO TECNICOS.xlsx" End Sub
虽然AfterSave
不是,但是这个代码工作正常,所以当我保存我的原始文件时,它不会调用我的子版本。
任何人都知道这个事件发生了什么?
试试这个,认为这是因为你没有testing成功价值的条件。 你需要检查它是真的还是假的
Private Sub Workbook_AfterSave(ByVal Success As Boolean) If Success = True Then Application.EnableEvents = False Call CopiarNovaPlanilha Application.EnableEvents = True End If End Sub
将:application.events = false放在CopiarNovaPlanilha()中:
Private Sub Workbook_AfterSave(ByVal Success As Boolean) Call CopiarNovaPlanilha End Sub
对于该模块:
Sub CopiarNovaPlanilha() Application.EnableEvents = False ActiveWorkbook.SaveCopyAs "file location" Application.EnableEvents = True End Sub
直接从工作簿事件调用子有时会导致问题。 我build议你尝试的只是把你的sub的内容放入AfterSave事件中,像这样:
Private Sub Workbook_AfterSave(ByVal Success As Boolean) Application.EnableEvents = False ActiveWorkbook.SaveCopyAs "I:\CGP\DEOPEX\01 - Supervisão\10 - Alocação das equipes\Consulta Alocados\ALOCACAO TECNICOS.xlsx" Application.EnableEvents = True End Sub
考虑到你没有使用任何variables内的子,我不明白为什么这不起作用!