微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Excel AdvanceFilter vba copyToRange仅适用于最上面的行

如何解决Excel AdvanceFilter vba copyToRange仅适用于最上面的行

在工作簿中有一个工作表“ RM”,在同一工作簿中有另一个工作表“ ST”。 “ RM”具有表2,“ ST”具有表3

我使用以下代码将RM从RM复制到另一个表“ Andy” refName是“ Andy”中的条件,topRowName是字符串“ Andy!B1:M1”

Sheets("RM").Range("Table2[#All]").AdvancedFilter Action:=xlFiltercopy,_
        Criteriarange:=Range(refName),copyToRange:=Range(topRowName),Unique:= _
        False

到目前为止,一切正常 现在,我也想从“ ST”复制到“ Andy”,但将其粘贴到“ topRowName”下面几行,这样它就不会被覆盖,所以我要进行偏移

Sheets("ST").Range("Table3[#All]").AdvancedFilter Action:=xlFiltercopy,copyToRange:=Range(topRowName).Offset(5),Unique:= _
        False

但是会引发1004错误提取范围的字段名称缺失或无效”

我试图像这样对范围中的值进行硬编码

Sheets("RM").Range("Table2[#All]").AdvancedFilter Action:=xlFiltercopy,copyToRange:=Range(Andy!B5:M5),Unique:= _
        False

但是它仍然不起作用。是因为粘贴位置中有一张桌子吗?我试图调整表格的大小,以便它不会与新粘贴发生冲突,但无济于事。任何帮助表示赞赏

解决方法

谢谢,我找到了发生这种情况的原因的答案。我需要清除要粘贴到的地方的内容。显然,如果已经存在某些内容,尤其是诸如表之类的ListObject,则Excel不希望将内容复制到某个范围。我以为它会写在上面。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。