Сохранить листы как CSV - игнорирование скрытых листов или листов с макросами - PullRequest
1 голос
/ 27 января 2020

Мне нужно сохранить все листы в виде файлов CSV, за исключением четырех скрытых листов («фишка», «игра», «другое» и «предложения») и листа, который содержит кнопки макросов («Волхвы * 1005»). * Кнопки ").

Этот код сохраняет все листы. Я не знаю, где go отсюда (несмотря на проб и ошибок и чтения некоторых других вопросов переполнения стека).

Sub SaveSheets()
'
' SaveSheets Macro
' Saves sheets as individual CSV files
'
Dim csvPath As String
csvPath = "C:\Daily Batch Files"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In ThisWorkbook.Sheets
    xWs.Copy
    Application.ActiveWorkbook.SaveAs Filename:=csvPath & "\" & xWs.Name & ".csv", FileFormat:=xlCSV
    Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

1 Ответ

1 голос
/ 27 января 2020

Условия для сохранения необходимо go внутри l oop.

Использование If...End If

For Each xWs In ThisWorkbook.Sheets
    If xWs.Name <> "chip" And xWs.Name <> "play" And _
        xWs.Name <> "Other" And xWs.Name <> "offers" And _
        xWs.Name <> "Magic Buttons" Then

        xWs.Copy
        Application.ActiveWorkbook.SaveAs Filename:=csvPath & "\" & xWs.Name & ".csv", FileFormat:=xlCSV
        Application.ActiveWorkbook.Close False
    End If
Next

Использование Select Case...End Select

For Each xWs In ThisWorkbook.Sheets
    Select Case xWs.Name
        Case "chip", "play", "Other", "offers", "Magic Buttons"
        Case Else
            xWs.Copy
            Application.ActiveWorkbook.SaveAs Filename:=csvPath & "\" & xWs.Name & ".csv", FileFormat:=xlCSV
            Application.ActiveWorkbook.Close False
    End Select
Next
...