gpt4 book ai didi

excel vba自动过滤范围并删除co​​l D中所有带0的行

转载 作者:行者123 更新时间:2023-12-04 20:13:41 26 4
gpt4 key购买 nike

我有一长串数据(产品标签),另一张表有原始数据和计算。我有一个宏可以导入 A2 - AP2 中的数据。它扫描 Col D 并删除 col D 中具有零 (0) 值的任何行。我让它工作但是,有没有办法改变代码只删除从 A 到 AP 的行?我有 3 个其他代码需要这个,但由于其他数据/帮助列,我不能只删除一整行?

Worksheets("Labels").Activate
ActiveSheet.AutoFilterMode = False

ActiveSheet.Range(drop2).AutoFilter Field:=4, Criteria1:="=-", _
Operator:=xlOr, Criteria2:="=+"

Dim oRow As Range, rng As Range
Dim myRows As Range
With Sheets("Labels")
Set myRows = Intersect(.Range("D:D").EntireRow, .UsedRange)
If myRows Is Nothing Then Exit Sub
End With

For Each oRow In myRows.Columns(1).Cells
If oRow.EntireRow.Hidden Then
If rng Is Nothing Then
Set rng = oRow
Else
Set rng = Union(rng, oRow)
End If
End If
Next

If Not rng Is Nothing Then rng.EntireRow.Delete

ActiveSheet.AutoFilterMode = False
Application.ScreenUpdating = True

最佳答案

如果没有看到你的 excel 数据,我无法猜测你在代码中做了什么。但是,根据您的解释,您将查看 D 列,如果找到 0,那么您将删除整行。但是,您不想删除整行,因为这会删除辅助列。我只是想重复你说的话。如果这是您想要的,请使用带有 Shift:=xlUp 的范围删除函数调用

Range("A2:AP2").Delete Shift:=xlUp

这不会删除整行,只会删除 A2:AP2 中的数据并将下面的所有单元格向上移动。有点删除你的整行,让你的帮助列保持不变。

更新 1:

我将尝试用一个小例子来解释它。下面的屏幕截图显示了我正在使用的示例数据,

enter image description here

黄色标记的单元格的值为零,除辅助列数据外,需要清除整行。下面是这个excel数据的示例代码,
Dim i As Integer
Dim myRows As Range

Set myRows = Intersect(Sheet1.Range("A:E").EntireRow, Sheet1.UsedRange)
If myRows Is Nothing Then Exit Sub

For i = 1 To myRows.Rows.Count
If Sheet1.Cells(i, 4) = 0 Then
Sheet1.Range("A" & CStr(i) & ":E" & CStr(i)).Delete (xlUp)
End If
Next

如果上面的代码被执行,下面是结果的截图。请注意,具有 0 值的 D 列的整行已被删除,而 Helper 列不受影响。

enter image description here

关于excel vba自动过滤范围并删除co​​l D中所有带0的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32830987/

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