【问题标题】:Paste Special Run time error 1004 method range failed粘贴特殊运行时错误 1004 方法范围失败
【发布时间】:2018-03-20 17:09:48
【问题描述】:

我正在使用以下 VBA 代码并将其分配给一个按钮:

Sub pastespecial ()

ActiveSheet.Range("A4:X400").Copy
Activesheet.Next.Range("A4:X400").PasteSpecial Paste:=xlPasteFormats
ActiveSheet.Next.Range("A4:X400").PasteSpecial paste:=xlPasteFormulas

ActiveSheet.Previous.Activate

Application.CutCopyMode = False

MsgBox "Data has been copied Successfully"

End sub

它以前这样做,但现在开始制造问题。 我得到了

Range类的运行时错误1004 pastespecial方法失败

提前致谢

【问题讨论】:

  • 在什么之前/什么时候?请分享所做的修改。
  • 粘贴之前可能需要Activesheet.Next.Activate
  • 当我调试错误时它会突出显示 ActiveSheet.Next.Range("A4:X400").PasteSpecial paste:=xlPasteFormulas 这部分

标签: excel vba


【解决方案1】:

如果活动工作表是第一个工作表,则子将失败:

 ActiveSheet.Previous.Activate

因为没有以前的工作表。如果活动工作表是最后一个工作表,则子将失败:

 Activesheet.Next.Range("A4:X400").PasteSpecial Paste:=xlPasteFormats

因为没有下一张。如果在活动工作表之前和之后都有工作表,那么您的代码对我有用。

(确保没有其他东西会导致合并单元格或保护等错误。)

【讨论】:

  • 32 位 excel 和 64 位 excel 的编码是否有区别,因为我的代码在 32 位 excel 中运行良好。但是 64 位 excel 出现问题
  • 它突出显示了第二个 pastespecial 错误选项。我有上一张和下一张。
【解决方案2】:

这个解决方案对我有用..

Sub pastespecial ()

ActiveSheet.Range("A4:X400").Copy
Activesheet.Next.Range("A4:X400").PasteSpecial Paste:=xlPasteFormats
ActiveSheet.Range("A4:X400").Copy
ActiveSheet.Next.Range("A4:X400").PasteSpecial paste:=xlPasteFormulas

ActiveSheet.Previous.Activate

Application.CutCopyMode = False

MsgBox "Data has been copied Successfully"

End sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 2014-09-08
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    相关资源
    最近更新 更多