簡體   English   中英

對象“_Worksheet”的方法“復制”失敗

[英]Method 'Copy' of object '_Worksheet' failed

我現在第一次遇到錯誤

對象“_Worksheet”的方法“復制”失敗

我聽說這是一個很常見的錯誤,但我無法找到解決方案。 當我搜索低谷時,我發現了很多關於

對象的“范圍”失敗-錯誤。

此錯誤是由工作站的內存限制引起的還是與軟件相關的錯誤?

有人有解決這個問題的想法嗎?

如果我感興趣的是我的 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)是錯誤的原因。

盡管進行了深入研究,但我找不到有關此錯誤的任何詳細信息。 結果證明對我來說非常簡單的解決方案是手動將所有內容復制到新工作表上並從那里啟動宏。 此錯誤可能是由有限的資源或壞單元引起的。

VBA 本身有效。 如果有人遇到這種問題,重建工作表可能會奏效。

這是一個一年前的帖子,但萬一其他人在這里找到了他們的方式,我也收到了這個錯誤並解決了它。 我試圖在隱藏的工作表上使用 .copy 函數。 一旦我取消隱藏工作表,宏就可以正常運行。 通過在 .Copy code 之前添加Worksheets("Sheet1").visible = True在代碼末尾添加Worksheets("Sheet1").visible = False它為我修復了錯誤。

這已經很老了,但我也在官方 MS 文檔中找到了一個可能的原因:

Source 和 Destination 必須在同一個 Excel.Application 實例中,否則會引發運行時錯誤“1004”:如果使用了類似 Sheet1.Copy objWb.Sheets(1) 的東西,或者運行時錯誤“1004”,則不支持此類接口':如果使用了類似 ThisWorkbook.Worksheets("Sheet1").Copy objWb.Sheets(1) 的方法,則 Worksheet 類的復制方法失敗。

來源: https ://docs.microsoft.com/en-us/office/vba/api/Excel.Worksheet.Copy

這絕對是我的原因。 希望對你也有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM