运行时错误1004的问题:Range Class的PasteSpecial方法失败

时间:2018-10-18 12:52:43

标签: excel vba

我试图在以前具有密码保护功能的工作簿的另一张工作表中运行粘贴值宏。

该宏在目标表中的值工作正常,但在其他出现错误runtime error '1004' - select method of range class failed的选项卡中却无法正常工作

我应该如何继续允许该宏从其他活动表运行?

Sub PasteSpecial_ValuesOnly()

    Worksheets("ARF Table").Range("A2:AI13").Copy
'Error occurs below
    **Worksheets("ARF Export").Range("A2:AI13").Select**
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False

    Worksheets("ARF Export").Range("AK2").Value = Worksheets("ARF Export").Range("AD2").Value

End Sub

1 个答案:

答案 0 :(得分:0)

您只需要目的地的左上角单元格。

您无需进行选择。直接转移价值的速度更快。

Sub PasteSpecial_ValuesOnly()

    Worksheets("ARF Table").Range("A2:AI13").Copy
    Worksheets("ARF Export").Range("A2").PasteSpecial Paste:=xlValues

    Worksheets("ARF Export").Range("AK2").Value = Worksheets("ARF Export").Range("AD2").Value

End Sub

替代

Sub PasteSpecial_ValuesOnly()

    with Worksheets("ARF Table").Range("A2:AI13")
      Worksheets("ARF Export").Range("A2").resize(.rows.count, .columns.count) = .value
    end with

    Worksheets("ARF Export").Range("AK2").Value = Worksheets("ARF Export").Range("AD2").Value

End Sub