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)
feche uma pasta de trabalho com vba

Etapas para fechar uma pasta de trabalho

  1. Especifique a pasta de trabalho que deseja fechar.
  2. Use o método close com esta pasta de trabalho.
  3. No método de código, indique se deseja salvar o arquivo ou não.
  4. 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 macroGravador de macroEditor Visual BasicManual 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

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *