Vba: como salvar planilhas como arquivos csv (com exemplo)


Você pode usar a seguinte sintaxe no VBA para salvar cada planilha de uma pasta de trabalho em um arquivo CSV:

 Sub SaveCSV()

Dim Ws As Worksheet
Dim SaveDir As String

Dim CurrentWorkbook As String
Dim CurrentFormat As Long

CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat

'specify directory to save CSV files in
SaveDir = " C:\Users\bobbi\OneDrive\Desktop\ "

'save each sheet to individual CSV file
For Each Ws In Application.ActiveWorkbook.Worksheets
    Ws.SaveAs SaveDir & Ws.Name, xlCSV
Next

Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True

End Sub

Esta macro específica salvará cada planilha da pasta de trabalho atualmente ativa em um arquivo CSV.

Os arquivos CSV serão salvos no caminho especificado na variável SaveDir .

Nota : A linha Application.DisplayAlerts=False informa ao VBA para desativar temporariamente todos os alertas de exibição no Excel ao salvar arquivos.

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: salvar planilhas como arquivos CSV usando VBA

Suponha que temos uma pasta de trabalho do Excel com duas planilhas.

A primeira planilha é chamada player_stats e contém estatísticas sobre diferentes jogadores de basquete:

A segunda planilha é chamada team_info e contém informações sobre diferentes times de basquete:

Digamos que queremos salvar cada uma dessas planilhas como arquivos CSV individuais na área de trabalho do nosso computador.

Podemos criar a seguinte macro para fazer isso:

 Sub SaveCSV()

Dim Ws As Worksheet
Dim SaveDir As String

Dim CurrentWorkbook As String
Dim CurrentFormat As Long

CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat

'specify directory to save CSV files in
SaveDir = " C:\Users\bobbi\OneDrive\Desktop\ "

'save each sheet to individual CSV file
For Each Ws In Application.ActiveWorkbook.Worksheets
    Ws.SaveAs SaveDir & Ws.Name, xlCSV
Next

Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True

End Sub

Assim que esta macro for executada, cada planilha será salva como um arquivo CSV em nossa área de trabalho.

Se eu navegar até a área de trabalho do meu computador, poderei ver cada um desses arquivos CSV individuais com nomes de arquivo que correspondem aos nomes das planilhas:

Se eu abrir o arquivo CSV player_stats usando o Bloco de notas, posso ver que os valores no arquivo Excel foram salvos como valores separados por vírgula:

Observe que neste exemplo conseguimos salvar duas planilhas em nossa pasta de trabalho como arquivos CSV individuais, mas essa mesma macro funcionará com qualquer número de planilhas.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:

VBA: Como contar o número de planilhas em uma pasta de trabalho
VBA: Como extrair dados de outra pasta de trabalho
VBA: Como adicionar novas planilhas

Add a Comment

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