Сохраните некоторые скрытые листы Excel в файл, созданный с помощью VBA - PullRequest
0 голосов
/ 10 июня 2019

О проблеме, как сохранить некоторые скрытые листы Excel в файл, созданный с помощью кнопки с помощью vba-excel.Может ли кто-нибудь помочь мне изменить код так, чтобы он копировал только скрытые листы?.

Sub Generate_matriz()   

    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    sheet_exp = Array("Sheet1", "Sheet2", "Sheet3")
    fecha = Format(Now, "ddmmyyyy")
    Export = fecha & "_matriz_sovio"

    FileSelected = Application.GetSaveAsFilename(InitialFileName:=Export, _                                            
    FileFilter:="Excel Files (*.xlxs), *.xlxs", Title:="Save Excel as")

    If FileSelected = False Then Exit Sub

    Sheets(sheet_exp).Visible = True

    ActiveWorkbook.SaveAs FileName:=FileSelected _
    , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

    MsgBox ("It was successfully recorded : " & FileSelected), 
    vbInformation, "SOVIO"

    Sheets(sheet_exp).Visible = false
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

End Sub

1 Ответ

0 голосов
/ 10 июня 2019

Как насчет следующего, он будет циклически проходить по вашим рабочим листам и, если они видны, он будет скрывать их, а если скрыт, то отображать их, затем сохранять рабочую книгу и возвращаться обратно, чтобы отобразить соответствующие рабочие листы:

Sub Generate_matriz()
    Dim ws As Worksheet
    Dim wb As Workbook: Set wb = ThisWorkbook

    Application.DisplayAlerts = False
    Application.ScreenUpdating = False

    fecha = Format(Now, "ddmmyyyy")
    Export = fecha & "_matriz_sovio"

    FileSelected = Application.GetSaveAsFilename(InitialFileName:=Export, _
    FileFilter:="Excel Files (*.xlxs), *.xlxs", Title:="Save Excel as")

    If FileSelected = False Then Exit Sub

    For Each ws In wb.Worksheets
        If ws.Visible = xlSheetHidden Or ws.Visible = xlSheetVeryHidden Then
            ws.Visible = xlSheetVisible
        Else
            ws.Visible = xlSheetVeryHidden
        End If
    Next ws

    ThisWorkbook.SaveAs Filename:=FileSelected _
    , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

    MsgBox ("It was successfully recorded : " & FileSelected), vbInformation, "SOVIO"

    For Each ws In wb.Worksheets
        If ws.Visible = xlSheetHidden Or ws.Visible = xlSheetVeryHidden Then
            ws.Visible = xlSheetVisible
        Else
            ws.Visible = xlSheetVeryHidden
        End If
    Next ws

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...