gpt4 book ai didi

vba:删除过滤的行但不是第一个(或删除后存储并粘贴)

转载 作者:行者123 更新时间:2023-12-03 09:07:43 25 4
gpt4 key购买 nike

在 Excel 2013 中使用 Microsoft Visual Basic Application Edition 7.1
数据在从 A 到 D 的列上,行数不时变化。我想删除 B 列的值不以 LCR 开头的所有行(而且我不想厌烦 for...next 循环)。
就像是:

Columns("B:B").AutoFilter Field:=1, Criteria1:="<>LCR*"
Selection.Delete

不幸的是,这段代码删除了标题行(第 1 行),我不想要。
我试图将第 1 行存储在范围变量的其他位置,但它不起作用(运行时错误“424”)
Set r1 = Range("A1:D1")
r1.Copy
Columns("B:B").AutoFilter Field:=1, Criteria1:="<>LCR*"
Selection.Delete
With Range("A1:D1")
.Insert Shift:=xlDown
.Select
.Value = r1.Value
End With

如何告诉过滤器从第二行开始(或者如何正确存储第一行的内容以便在过滤器删除后将其粘贴)?
在此先感谢您的帮助

最佳答案

将删除范围定义为 Range(Cells(2,2),Cells(ActiveSheet.UsedRange.Rows.Count,2)) (替换 Selection 调用)。这将删除除列中的第一个单元格之外的所有内容

编辑以避免excel提示:Range(Cells(2,2),Cells(ActiveSheet.UsedRange.Rows.Count,2)).EntireRow

关于vba:删除过滤的行但不是第一个(或删除后存储并粘贴),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37852725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com