以下代码从特定工作表中删除几列,然后将剩下的内容复制到单独的工作表中:
Sub Test()
Daily.Range("C:D,G:G,J:M,O:P").EntireColumn.Delete
Daily.Range("A2", Range("A2").End(xlDown).End(xlToRight)).Copy Destination:=Work.Range("C2")
End Sub
如果我执行此操作,但不在“每日”工作表上,则会收到运行时错误: _worksheet对象的方法范围失败
如果我添加一行
Daily.Activate
工作正常。
有人可以解释它是如何工作的吗?从纸上进行复印之前,我真的必须激活纸吗?
答案 0 :(得分:3)
这是因为您在引用范围时未指定要使用的工作表,因此它默认为活动工作表:
Daily.Range("A2", Range("A2").End(xlDown).End(xlToRight)).Copy …
尝试
Daily.Range("A2", Daily.Range("A2").End(xlDown).End(xlToRight)).Copy …