Я новичок в VBA. Я пытаюсь сделать следующее, но код работает не совсем так, как ожидалось.

  1. Экспорт / копирование определенных листов в книге (любое имя листа, содержащее "Загрузить") в определенный каталог файлов.

  2. Я не хочу, чтобы имена этих листов менялись, и имя книги не менялось.

  3. Имя файла является одинаковым для каждого листа, поэтому было бы нормально заменять файлы в каталоге каждый раз, когда я запускаю макрос. Хорошо иметь диалоговое окно, которое спрашивает, уверен ли я, что хочу заменить каждый из файлов.

  4. Я не хочу, чтобы вновь созданные CSV или любой другой файл открывался.

    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
    

1 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .