macros不在工作表,Excel VBA中运行

我只是logging这个macros,并将其粘贴到我的主代码是在其中一张表内。 当我用我的代码运行它,在这一点上抛出一个错误,我不知道为什么。

任何想法 ?

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 

谢谢

Range("B6")是一个不合格的参考。 标准模块中的不合格范围引用是指活动工作表。 工作表类模块中的非限定范围引用是指由类模块表示的工作表。 由于您的代码不在“Works”类模块中,因此您正试图select不在活动页面上的范围,而这是您无法执行的范围。 这是一个不依赖于某个活动表单的例子。

 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