Este tutorial do VBA cobre como salvar um arquivo usando os comandos Salvar e Salvar como no VBA.
Salvar pasta de trabalho - VBA
O comando Salvar do VBA salva um arquivo do Excel de forma semelhante a clicar no ícone Salvar ou usar o atalho Salvar (CTRL + S).
Salvar uma pasta de trabalho especificada
Para salvar uma pasta de trabalho, faça referência ao objeto da pasta de trabalho e use o comando Salvar.
1 | Pastas de trabalho ("savefile.xlsm"). Salvar |
Salvar a pasta de trabalho ativa
Observação: esta é a pasta de trabalho ativa atual com o código VBA, que é diferente de ThisWorkbook, que contém o código em execução.
Salve a pasta de trabalho onde o código está armazenado
Salvar todas as pastas de trabalho abertas
Isso percorrerá todas as pastas de trabalho abertas, salvando cada uma.
12345 | Dim wb como pasta de trabalhoPara cada wb no aplicativo.wb.SavePróximo wb |
Salve todas as pastas de trabalho abertas que não foram abertas somente para leitura
Observação: abrir uma pasta de trabalho no modo somente leitura evita que o arquivo seja salvo.
Para salvar o arquivo, você precisará usar Salvar como e salvar o arquivo com um nome diferente.
1234567 | Dim wb como pasta de trabalhoPara cada wb no aplicativo.Se não for somente leitura, entãowb.SaveFim sePróximo wb |
Salvar uma pasta de trabalho definida por uma variável
Isso salvará uma pasta de trabalho que foi atribuída a uma variável de objeto de pasta de trabalho.
1234 | Dim wb como pasta de trabalhodefinir wb = pastas de trabalho ("savefile.xlsm")wb.save |
Salve uma pasta de trabalho definida por uma variável de string
Isso salvará uma pasta de trabalho cujo nome foi salvo em uma variável de string.
1234 | Dim wbstring como stringwbstring = "savefile.xlsm"pastas de trabalho (wbstring) .save |
Salve uma pasta de trabalho definida pelo pedido em que foi aberta.
Observação: a primeira pasta de trabalho aberta teria 1, a segunda 2, etc.
1 | pastas de trabalho (1) .save |
Salvar uma pasta de trabalho com base em um valor de célula
Isso salvará uma pasta de trabalho cujo nome é encontrado em um valor de célula.
1234 | Dim wbstring como stringwbstring = activeworkbook.sheets ("planilha1"). range ("wb_save"). valuepastas de trabalho (wbstring) .save |
Salvar como - VBA
O comando Salvar como do VBA salva um arquivo do Excel como um novo arquivo, semelhante a clicar no ícone Salvar como ou usar o atalho Salvar como (Alt> F> A).
Acima, identificamos todas as maneiras de especificar qual pasta de trabalho salvar. Você pode usar exatamente esses mesmos métodos para identificar pastas de trabalho ao usar Salvar como.
Salvar como se comporta de maneira semelhante a Salvar, exceto que você também precisa especificar o nome do novo arquivo.
Na verdade, Salvar como tem muitas variáveis potenciais para definir:
Salvar como sintaxe:
123 | objeto de pasta de trabalho .SaveAs (FileName, FileFormat, Password, WriteResPassword, _ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, _AddToMru, TextCodepage, TextVisualLayout, Local) |
Uma descrição completa de todos os argumentos SaveAs está incluída abaixo. Por enquanto, vamos nos concentrar nos exemplos mais comuns.
Nota: Esses argumentos podem ser inseridos como string com parênteses ou como variáveis definidas.
Salvar como exemplos de sintaxe:
Pasta de trabalho Salvar como - Mesmo diretório
1 | ActiveWorkbook.SaveAs Filename: = "novo" |
ou
1 | ActiveWorkbook.SaveAs "novo" |
ou
1234 | Dim wbstring como stringwbstring = "novo"ActiveWorkbook.SaveAs Filename: = wbstring |
Livro de Trabalho Salvar Como - Novo Diretório
1 | ActiveWorkbook.SaveAs Filename: = "C: \ novo" |
ou
1234 | Dim wbstring como stringwbstring = "C: \ novo"ActiveWorkbook.SaveAs Filename: = wbstring = |
Pasta de trabalho Salvar como - Novo diretório, especificar extensão de arquivo
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx" |
ou
1234 | Dim wbstring como stringwbstring = "C: \ new.xlsx"ActiveWorkbook.SaveAs Filename: = wbstring |
Pasta de trabalho Salvar como - Novo diretório, especificar extensão de arquivo - Método Alt
Você também pode especificar o formato do arquivo em seu próprio argumento.
1234 | .xlsx = 51 '(52 para Mac).xlsm = 52 '(53 para Mac).xlsb = 50 '(51 para Mac).xls = 56 '(57 para Mac) |
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new", FileFormat: = 51 |
Pasta de trabalho Salvar como - Adicionar senha para abrir arquivo
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx", Senha: = "senha" |
Pasta de trabalho Salvar como - Adicionar senha para privilégios de gravação
Se a senha correta não for fornecida, a pasta de trabalho será aberta como somente leitura
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx", WriteRes: = "senha" |
Pasta de trabalho salvar como - somente leitura recomendado
TRUE para exibir uma caixa de mensagem, recomendando que o arquivo seja aberto somente para leitura.
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx", ReadOnlyRecommended: = TRUE |
Outros exemplos de salvar como
Criar caixa de diálogo Salvar como
Isso gera a caixa de diálogo Salvar como, solicitando que o usuário salve o arquivo.
Lembre-se de que esse código simples pode não ser apropriado em todos os casos.
1 | Application.GetSaveAsFilename |
Criar caixa de diálogo Salvar como com nome de arquivo padrão fornecido
1 | Application.GetSaveAsFilename InitialFilename: = "test.xlsx" |
Criar caixa de diálogo Salvar como com nome de arquivo padrão fornecido
1 | Application.GetSaveAsFilename InitialFilename: = "test.xlsx" |
Criar e salvar uma nova pasta de trabalho
Isso criará uma nova pasta de trabalho e a salvará imediatamente.
123456 | Dim wb como pasta de trabalhoDefinir wb = Workbooks.AddApplication.DisplayAlerts = Falsewb.SaveAs Filename: = ”c: \ Test1.xlsx”Application.DisplayAlerts = True |
Desativar Salvar Alertas
Conforme você trabalha salvando no VBA, pode encontrar vários avisos ou prompts para salvar. Para desativar os avisos, adicione esta linha de código:
1 | Application.DisplayAlerts = False |
e para reabilitar alertas:
1 | Application.DisplayAlerts = True |