宏未在工作表中运行,Excel VBA

时间:2013-10-19 15:14:38

标签: excel vba excel-vba

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

有什么想法吗?

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

由于

1 个答案:

答案 0 :(得分: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