0

我刚刚记录了这个宏并将其粘贴到我的主代码中,该代码位于其中一张表内。当我用我的代码运行它时,此时它会抛出一个错误,我不知道为什么?

任何想法 ?

Sub pastem()
Windows("Main.xlsm").Activate
Sheets("Work").Select
Range("B6").Select        'error at this position
ActiveSheet.Paste 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False
Range("B6").Select
End Sub

谢谢

4

1 回答 1

3

Range("B6")是一个不合格的参考。标准模块中的非限定范围引用指的是活动工作表。工作表的类模块中的非限定范围引用是指由类模块表示的工作表。由于您的代码不在“Works”类模块中,因此您试图选择一个不在活动表上的范围,这是您无法做到的。这是一个不依赖于某个工作表处于活动状态的示例。

Sub pastem()

    With Workbooks("Main.xlsm").Sheets("Work").Range("B6")
        .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    End With

    Application.CutCopyMode = False

End Sub
于 2013-10-19T16:02:30.677 回答