Копировать скрытый лист Excel - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь скопировать скрытый лист Excel, но он показывает ошибку "сбой метода копирования класса листа"

Workbooks("FCD Alert").Activate
xPath = Application.ActiveWorkbook.Path

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        DisplayAlerts = False
    End With

    Set Sourcewb = ActiveWorkbook
    Sheets("Yesterday").Activate
    'Copy the ActiveSheet to a new workbook
    Sheets("Yesterday").Copy <- This region is getting Highlighted 
    Set Destwb = ActiveWorkbook

    'Determine the Excel version and file extension/format
    With Destwb
        If Val(Application.Version) < 12 Then
            'You use Excel 97-2003
            FileExtStr = ".xls": FileFormatNum = -4143
        Else

1 Ответ

3 голосов
/ 23 мая 2019

Метод .Copy создает новую рабочую книгу только с скопированным листом.В любой рабочей книге должен быть виден хотя бы один лист (вы можете проверить это независимо, попытавшись создать новую рабочую книгу только с одним рабочим листом, а затем попытаться скрыть ее:

enter image description here

Таким образом, решение должно состоять в том, чтобы показать перед копированием, а затем скрыть в исходной книге после ее копирования.

Set Sourcewb = ActiveWorkbook
Dim yesterday as Worksheet
Dim wsVis as Long
Set yesterday = Sourcewb.Sheets("Yesterday")
wsVis = yesterday.Visible  ' # Get the sheet's visible state
yesterday.Visible = xlSheetVisible  ' # Make it Explicitly visible
'Copy the ActiveSheet to a new workbook
Set Destwb = yesterday.Copy
yesterday.Visible = wsVis ' # return it to its original visible state
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...