运行时错误1004:Range类的PasteSpecial方法失败了

  • Share This
Hugh West

我们在工作中遇到的最常见的问题之一是 在VBA中复制和粘贴 是指 运行时间错误1004 : 范围类的PasteSpecial方法失败了 在这篇文章中,我将告诉你这个错误背后可能的原因是什么,以及如何解决这些问题,并附有适当的例子和说明。

下载实践工作手册

下载这本练习手册,在阅读本文时进行练习。

PasteSpecial Method Failed.xlsm

范围类的PasteSpecial方法失败了:原因和解决方案

不要再拖延了,让我们进入我们的主要讨论,那就是,这个错误背后可能的原因是什么,以及如何解决这些问题。

原因1:访问PasteSpecial方法而不复制任何东西

这是错误背后最常见的原因。 就是说,试图访问 粘贴专用 方法,而没有复制任何东西。

为了清楚地了解它,请检查以下内容 VBA 代码。

⧭ VBA代码。

 Sub PasteSpecial_Method_of_Range_Class_Failed() Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub 

在这里,我们使用了 粘贴专用 的方法 VBA 所以Excel会显示一个 运行时错误1004 当你运行它时。

⧭解决方案。

要解决这个问题,首先,你需要复制一个单元格区域,然后访问 粘贴专用 方法。

 Sub PasteSpecial_Method_of_Range_Class_Failed() Application.Range("B3:B5").Copy Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub 

当你运行这段代码时,它将粘贴该范围的公式 B3:B5 活动的工作表的数据到选定的范围。

阅读更多。 粘贴工作表类的特殊方法失败了(原因& 解决方案)

原因2:访问PasteSpecial方法时出现拼写错误

这是错误背后的另一个常见原因。 也就是说,要访问 粘贴专用 方法的任何参数中存在拼写错误。

请看以下内容 VBA 这里我们在论证中犯了一个拼写错误 xlPasteAll .

⧭ VBA代码。

 Sub PasteSpecial_Method_of_Range_Class_Failed() Application.Range("B3:B5").Copy Selection.PasteSpecial 粘贴:=xlPaseAll End Sub 

当你运行这段代码时,你会得到 运行时错误1004 .

⧭解决方案。

解决办法很简单,我相信你已经猜到了。 只要确保所有论据的拼写都是正确的。

而这个错误将自动消失。

阅读更多。 如何在Excel中使用粘贴特殊命令(5种合适的方法)

类似读物

  • Excel VBA:复制范围到另一个工作簿
  • 用Excel VBA复制和粘贴数值到下一个空行(3个例子)。
  • 在Excel中应用VBA PasteSpecial并保持源格式化
  • 如何在Excel的多个单元格中复制相同的值(4种方法)
  • Excel VBA根据标准将行复制到另一个工作表的方法

原因3:复制后打开一个新的工作簿,取消了复制/粘贴模式

这是错误背后的另一个重要原因。 那就是在粘贴之前做一些取消复制/粘贴模式的事情。

请看下面的代码,以便清楚地理解。

⧭ VBA代码。

 Sub PasteSpecial_Method_of_Range_Class_Failed() Workbooks("Workbook1.xlsx").Worksheets("Sheet1").Range("B3:B5").Select Selection.Copy Dim Workbook2 As Workbook Set Workbook2 = Workbooks.Add Workbook2.SaveAs Filename:=ThisWorkbook.Path & "\" & "Workbook2.xlsx" Workbook2.Activate Workbook2.Unprotect Workbook2.Worksheets("Sheet1") ... Range("B3:B5") ... Selection.PasteSpecial Paste:=xlPasteAll结束子程序 

在这里,我们已经复制了范围 B3:B5 第1张 的一个工作簿,名为 工作手册1 .

然后我们创建了一个新的工作簿,名为 工作手册2 在同一文件夹中,并试图将复制的范围粘贴到范围的 B3:B5 第1张 该工作簿的。

但当我们运行这段代码时,它将显示一个 范围类的PasteSpecial方法失败了 错误,因为在我们创建新工作簿的时候, 复制/粘贴模式 将被取消。

⧭解决方案。

要解决这个问题,首先,写下几行代码,以创建名为 "A "的新工作簿。 工作手册2 .

然后插入这几行,以激活 工作手册1 并从中复制所需的范围。

最后,激活 工作手册2 并将复制的范围粘贴到那里。

 Sub PasteSpecial_Method_of_Range_Class_Failed() Dim Workbook2 As Workbook Set Workbook2 = Workbooks.Add Workbook2.SaveAs Filename:=ThisWorkbook.Path & "\" & "Workbook2.xlsx" Workbooks("Workbook1.xlsx").Activate Worksheets("Sheet1").Range("B3:B5").Select Selection.Copy Workbook2.Activate Worksheets("Sheet1").Range("B3:B5") Selection.PasteSpecial Paste:=xlPasteAll End Sub 

运行这段代码,它将复制范围 B3:B5 第1张 工作手册1。

并将其粘贴到 第1张 的新创建的工作簿称为 工作手册2 .

⧭ 预防措施。

很明显,不要忘记保持 工作手册1 在运行代码时打开。

阅读更多。 如何在没有Macros的情况下禁用Excel中的复制和粘贴(有2个标准)

原因4:将Application.CutCopyMode改为False,取消了复制/粘贴模式。

最后,可能还有另一个原因导致错误的发生。 我们可以关闭 Application.CutCopyMode 在访问之前,错误地将 粘贴专用 方法。

虽然这不是一个很常见的做法,但有时我们在工作中要处理长线的时候还是会这样做。

请看下面的代码来清楚地了解它。 这里我们复制了范围 B3:B5 ,但取消了 拷贝模式(CutCopyMode 在粘贴之前。

⧭ VBA代码。

 Sub PasteSpecial_Method_of_Range_Class_Failed() Range("B3:B5").Copy Application.CutCopyMode = False Range("D3:D5") .PasteSpecial Paste:=xlPasteAll End Sub 

当你运行该代码时,它将显示 范围类的PasteSpecial方法失败了 错误。

⧭解决方案。

我想现在你们都已经猜到了解决方案。 其实很简单。 只要从代码中删除那行把 剪切复制 模式关闭。

所以,正确的 VBA 代码将是。

 Sub PasteSpecial_Method_of_Range_Class_Failed() Range("B3:B5").Copy Range("D3:D5") PasteSpecial Paste:=xlPasteAll End Sub 

它将复制该范围 B3:B5 并将其粘贴在 D3:D5 没有任何麻烦。

阅读更多。 VBA粘贴特技在Excel中复制数值和格式(9个例子)

需要记住的事情

在这里,我只展示了你在工作中可能遇到的问题。 粘贴专用 方法在 VBA。 如果你想知道 粘贴专用 方法的详细情况,请访问 此链接 .

总结

因此,简而言之,这些是可能导致 运行时错误1004:PasteSpecial Method od Range Class Failed 我希望你已经清楚地理解了所有的要点,这些将对你今后的工作有很大的帮助。 你还知道其他的原因吗? 你有什么问题吗? 请随时问我们。 不要忘记访问我们的网站 ǞǞǞ 以了解更多帖子和更新。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.