Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 方法';复印件';对象的'_工作表';失败_Excel_Vba - Fatal编程技术网

Excel 方法';复印件';对象的'_工作表';失败

Excel 方法';复印件';对象的'_工作表';失败,excel,vba,Excel,Vba,这是我第一次面对这个错误 对象“\u工作表”的方法“复制”失败 我听说这是一个很常见的错误,但我没有找到解决办法。当我搜索时,我发现了很多关于 对象的“范围”失败错误 此错误是由工作站内存限制引起的,还是与软件相关的错误 有人有办法解决这个问题吗 如果感兴趣的是我的VBA代码: Private Sub CommandButton1_Click() MsgBox "Message" Dim wb As Workbook Set wb = Workbooks.Add(xlWBATWorks

这是我第一次面对这个错误

对象“\u工作表”的方法“复制”失败

我听说这是一个很常见的错误,但我没有找到解决办法。当我搜索时,我发现了很多关于

对象的“范围”失败错误

此错误是由工作站内存限制引起的,还是与软件相关的错误

有人有办法解决这个问题吗

如果感兴趣的是我的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函数。我一取消显示工作表,宏就正常工作了。通过在前面添加
工作表(“Sheet1”).visible=True
。复制代码并在代码末尾添加
工作表(“Sheet1”).visible=False
,它为我修复了错误。

您的代码不会为我产生任何错误。我可以创建工作簿并复制工作表,因此肯定还有其他内容。Myabe worbook的任何工作表都有保护吗?您是否尝试过使用F8进行调试,并检查它在第一次循环或特定工作表时是否失败?是否可以在=wb.Worksheets(wb.Worksheets.Count)之后尝试
<代码>工作表
也可以参考图表,这可能会导致错误。如果尝试添加不基于任何模板的普通工作簿,该怎么办?使用
Set wb=Workbooks.Add
还可以添加什么版本的Excel?Windows还是Mac?我唯一能想到的是
工作表
是一个集合,它基于
0
。因此,您可以尝试
After:=wb.Worksheets(wb.Worksheets.Count-1)
源文件,是XLS吗?所有单元格都已格式化,这是什么意思?