Como fechar uma pasta de trabalho do excel usando vba?
Para fechar um arquivo Excel, você deve usar o método “Fechar”. Com este método, você pode especificar se deseja salvar as alterações ou não. E, se quiser salvar e fechar um arquivo que ainda não foi salvo, você pode especificar o caminho onde deseja salvá-lo antes de fechá-lo.
Aqui está a sintaxe do método close.
Workbook.Close (SaveChanges, FileName, RouteWorkbook)
Etapas para fechar uma pasta de trabalho
- Especifique a pasta de trabalho que deseja fechar.
- Use o método close com esta pasta de trabalho.
- No método de código, indique se deseja salvar o arquivo ou não.
- No final mencione o caminho onde deseja salvar o arquivo antes de fechar.
Neste tutorial, veremos diferentes maneiras de fechar uma pasta de trabalho no Excel usando VBA.
Links úteis: Executar uma macro – Gravador de macro – Editor Visual Basic – Manual pessoal de macros
Fechar uma pasta de trabalho sem salvar
Se quiser salvar a pasta de trabalho ativa sem salvá-la, você precisará usar um código como este.
ActiveWorkbook.Close SaveChanges:=False
Neste código, especifiquei “False” para o argumento “SaveChanges”. Portanto, o VBA irá ignorar se houver alguma alteração na pasta de trabalho que não seja salva. E se quiser fechar uma pasta de trabalho específica, você pode usar o nome dessa pasta de trabalho. Assim como o código a seguir.
Workbooks("book1").Close SaveChanges:=False
Se você tiver dados na pasta de trabalho e ignorar o argumento “Salvar alterações”, o Excel exibirá uma caixa de diálogo para confirmar se deseja salvar a pasta de trabalho ou não. A questão é esta: é melhor especificar o argumento “SaveChanges” mesmo que seja opcional.
Fechar uma pasta de trabalho depois de salvá-la
Como você viu, existe um argumento no método CLOSE para especificar a localização do caminho. Digamos que você queira salvar o “Book6” em uma pasta na área de trabalho. Aqui está o código que você precisa usar.
Workbooks("Book6").Close _ SaveChanges:=True, _ Filename:="C:UsersDellDesktopmyFoldermyFile.xlsx"
Este código salvará a pasta de trabalho “Book6” na pasta salva em minha área de trabalho com o nome “myFILE.xlsx”. Mas aqui está uma coisa que você precisa cuidar: se você já tiver uma pasta de trabalho com o mesmo nome, ela substituirá esse arquivo pelo novo.
Não se preocupe, existe uma solução que você pode usar. O código a seguir verifica se existe um arquivo com o nome que você deseja usar
Sub vba_close_workbook() Dim wbCheck As String wbCheck = Dir("C:UsersDellDesktopmyFoldermyFile.xlsx") If wbCheck = "" Then Workbooks("Book6").Close _ SaveChanges:=True, _ Filename:="C:UsersDellDesktopmyFoldermyFile.xlsx" Else MsgBox "Error! Name already used." End If End Sub