Exportar várias planilhas (específicas) para arquivos CSV em um diretório especificado

0

Sou novo no VBA. Estou tentando fazer o seguinte, mas o código não está funcionando como esperado.

  1. Exportar / Copiar determinadas planilhas na pasta de trabalho (qualquer nome de planilha que contenha "Upload") para um determinado diretório de arquivos.

  2. Eu não quero que esses nomes de planilhas sejam alterados nem o nome da pasta de trabalho seja alterado.

  3. O nome do arquivo é consistente para cada planilha, portanto, seria correto substituir os arquivos no diretório sempre que eu executar a macro. Não há problema em ter uma caixa de diálogo perguntando se tenho certeza de que quero substituir cada um dos arquivos.

  4. Eu não quero que os CSVs recém-criados ou qualquer outro arquivo seja aberto.

    Sub COPYSelectedSheetsToCSV()
    '
    '
    
    Sheets("Moo Upload").Select  
    Sheets("Moo Upload").Name = "Moo Upload"  
    ActiveWorkbook.SaveAs Filename:="/Users/reginaho/Desktop/Upload/Moo Upload.csv", _  
    FileFormat:=xlCSV, CreateBackup:=False  
    Sheets("Dodo Upload").Select  
    ActiveWorkbook.SaveAs Filename:="/Users/reginaho/Desktop/Upload/Dodo Upload.csv", _  
    FileFormat:=xlCSV, CreateBackup:=False  
    Sheets("Lulu Upload").Select  
    ActiveWorkbook.SaveAs Filename:="/Users/reginaho/Desktop/Upload/Lulu Upload.csv", _  
    FileFormat:=xlCSV, CreateBackup:=False  
    Sheets("Ahhh Upload").Select  
    ActiveWorkbook.SaveAs Filename:="/Users/reginaho/Desktop/Upload/Ahhh Upload.csv", _  
    FileFormat:=xlCSV, CreateBackup:=False  
    
    End Sub
    
por Regina 21.08.2015 / 03:34

1 resposta

0

Option Explicit

Public Sub COPYSelectedSheetsToCSV()

    Const FLDR  As String = "/Users/reginaho/Desktop/Upload/"
    Const ASK_  As Boolean = True

    Dim ws As Worksheet

    Application.DisplayAlerts = ASK_
    For Each ws In Worksheets
        If InStr(LCase(ws.Name), "upload") > 0 Then ws.SaveAs FLDR & ws.Name, xlCSV
    Next
    Application.DisplayAlerts = Not ASK_
End Sub
    
por 22.08.2015 / 21:49