vba使用另存为而不打开文件

时间:2017-07-21 16:08:42

标签: excel vba excel-vba

有没有办法在不打开目标文件的情况下使用ActiveWorkbook.SaveAs

我的主要工作簿TEC ALOC EXT有一个代码,当它被保存时,它生成另一个没有宏的文件,在另一个路径中(使用FileFormat:=51)称为ALOCACAO TECNICOS。但是这种类型的FileFormat也会在最后打开目标文件(ALOCACAO TECNICOS)并关闭TEC ALOC EXT工作表。

这对我不利,因为我想在我的TEC ALOC SHEET表单上不断更改内容。

有没有办法只保存ALOCACAO TECNICOS而不打开它?

这是我的代码:

Sub CopiarNovaPlanilha()

Application.EnableEvents = False
Application.DisplayAlerts = False

ActiveWorkbook.SaveAs "I:\CGP\DEOPEX\01 - Supervisão\10 - Alocação das equipes\Consulta Alocados\ALOCACAO TECNICOS", FileFormat:=51

ActiveWorkbook.Sheets(1).Name = "FUNCIONARIOS"


Application.EnableEvents = True
Application.DisplayAlerts = True

End Sub

AfterSave事件触发:

Private Sub Workbook_AfterSave(ByVal Success As Boolean)

If Success Then


Call CopiarNovaPlanilha


End If

End Sub

2 个答案:

答案 0 :(得分:3)

这是一种方式......

Sub CopiarNovaPlanilha()

Application.EnableEvents = False
Application.DisplayAlerts = False

ActiveWorkbook.Sheets.Copy
ActiveWorkbook.SaveAs "I:\CGP\DEOPEX\01 - Supervisão\10 - Alocação das equipes\Consulta Alocados\ALOCACAO TECNICOS", FileFormat:=51
ActiveWorkbook.Sheets(1).Name = "FUNCIONARIOS"


Application.EnableEvents = True
Application.DisplayAlerts = True

End Sub

答案 1 :(得分:2)

这是一个网站,可以帮助您通过使用FileSystemObject库来完成您的需求。这样您就可以从一个位置复制到另一个位置,而无需实际打开文件。

第一个链接将向您展示如何设置excel以使用它。

http://www.wiseowl.co.uk/blog/s210/filesystemobject.htm

此链接将更详细地描述FSO库并告诉您一些方法。应该给你足够的开始

http://www.wiseowl.co.uk/blog/s212/files-folders-vba.htm