Метод 'Копировать' объекта '_Worksheet' не удался - PullRequest
3 голосов
/ 13 февраля 2020

Впервые я столкнулся с ошибкой

Метод 'Копирование' объекта '_Worksheet' не удался

Я слышал, что это довольно распространенная ошибка, но Я не смог найти решение. Когда я искал через SO, я нашел много сообщений о

'Range' объекта failed-Error.

Является ли эта ошибка вызвана ограничениями памяти рабочей станции или это ошибка, связанная с программным обеспечением?

У кого-нибудь появилась идея обойти эту проблему?

Если интерес представляет мой код VBA:

Private Sub CommandButton1_Click()
MsgBox "Message"

  Dim wb As Workbook
  Set wb = Workbooks.Add(xlWBATWorksheet)
  wb.Sheets(1).Name = "deletethissheet"

  Dim ws As Worksheet
  For Each ws In ThisWorkbook.Worksheets
    ws.Copy After:=wb.Sheets(wb.Sheets.Count)
  Next

  For Each ws In wb.Worksheets
    ws.UsedRange.Formula = ws.UsedRange.Value

    Dim sh As Shape
    For Each sh In ws.Shapes
      sh.Delete
    Next

  Next

  For Each Link In wb.LinkSources(xlLinkTypeExcelLinks)
  wb.BreakLink Name:=Link, Type:=xlLinkTypeExcelLinks
  Next

  wb.Sheets("deletethissheet").Delete
  wb.SaveAs Replace(ThisWorkbook.FullName, ".xlsm", "_" & Format(Date, "yyyymmdd") & ".xlsx"), xlOpenXMLWorkbook
  wb.Close SaveChanges:=False

End Sub

ws.Copy After:=wb.Sheets(wb.Sheets.Count) Является причиной ошибки.

1 Ответ

1 голос
/ 13 февраля 2020

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

Сам VBA работает. Если кто-то столкнется с такой проблемой, перестройка листа может сработать.

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