Vba 方法';范围';对象的'_工作表';查找范围时失败

Vba 方法';范围';对象的'_工作表';查找范围时失败,vba,excel,Vba,Excel,我试图编写一个宏,将数据从一个工作表复制到另一个工作表。但是,我正在努力编写if语句——如果活动工作表是x(在我的例子中是VFO_W1_W2),那么删除Cons工作表中的所有数据(在一个范围内) 特别是,这一行代码似乎是问题所在 Cons.Range("A4:Z4", Range("A4,Z4").End(xlDown)).Delete Shift:=xlUp 此错误表示对象“\u工作表”的方法“范围”已失败 如果有任何帮助,我们将不胜感激。将工作表引用添加到这两个工作表中,因为如果在运行代码

我试图编写一个宏,将数据从一个工作表复制到另一个工作表。但是,我正在努力编写if语句——如果活动工作表是x(在我的例子中是VFO_W1_W2),那么删除Cons工作表中的所有数据(在一个范围内)

特别是,这一行代码似乎是问题所在

Cons.Range("A4:Z4", Range("A4,Z4").End(xlDown)).Delete Shift:=xlUp
此错误表示对象“\u工作表”的方法“范围”已失败


如果有任何帮助,我们将不胜感激。

将工作表引用添加到这两个工作表中,因为如果在运行代码时另一个工作表处于活动状态,则会出现错误(范围将跨越两个工作表)。此外,我不会依赖活动工作表,而是根据其名称定义活动

Cons.Range("A4:Z4", Cons.Range("A4,Z4").End(xlDown)).Delete Shift:=xlUp

一些快速实验表明
范围(“A4,Z4”).End(xlDown)
范围(“A4”).End(xlDown)
之间没有区别,即在给定的用法中,忽略了第二个范围元素
Z4
。这简直把我弄糊涂了。
Cons.Range("A4:Z4", Cons.Range("A4,Z4").End(xlDown)).Delete Shift:=xlUp