Метод .Copy
создает новую рабочую книгу только с скопированным листом.В любой рабочей книге должен быть виден хотя бы один лист (вы можете проверить это независимо, попытавшись создать новую рабочую книгу только с одним рабочим листом, а затем попытаться скрыть ее:
Таким образом, решение должно состоять в том, чтобы показать перед копированием, а затем скрыть в исходной книге после ее копирования.
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