gpt4 book ai didi

vba - Excel - 根据单元格值删除当前行和上面的行

转载 作者:行者123 更新时间:2023-12-03 02:34:49 25 4
gpt4 key购买 nike

我每周都会收到一个最多可包含 4,000 行的电子表格。如果 C 列中有任何日期,我需要删除该行及其上方的行。有人可以帮助我编写一些 VBA 代码吗?我可以在每周收到的每个新文件上运行这些代码。每周手动查看 4,000 多行数据是一件痛苦的事情。

在屏幕截图中,我将删除第 157、158、159 和 160 行。
Screenshot showing rows to be deleted

非常感谢您的帮助。

最佳答案

尝试一下这个简短的宏:

Sub dural()
Dim N As Long, i As Long, v As Variant

N = Cells(Rows.Count, "C").End(xlUp).Row

For i = N To 2 Step -1
v = Cells(i, "C").Value
If v <> "" Then
If IsDate(v) Then
Range(Cells(i, "C"), Cells(i - 1, "C")).EntireRow.Delete
End If
End If
Next i
End Sub

编辑#1:

如果您有两个或多个连续单元格,其日期如下:

enter image description here

那么应该使用这段代码:

Sub dural()
Dim N As Long, i As Long, v As Variant
Dim rKill As Range
N = Cells(Rows.Count, "C").End(xlUp).Row
Set rKill = Nothing
For i = N To 2 Step -1
v = Cells(i, "C").Value
If v <> "" Then
If IsDate(v) Then
If rKill Is Nothing Then
Set rKill = Cells(i, "C")
Set rKill = Union(rKill, Cells(i - 1, "C"))
Else
Set rKill = Union(rKill, Cells(i, "C"))
Set rKill = Union(rKill, Cells(i - 1, "C"))
End If
End If
End If
Next i

If rKill Is Nothing Then Exit Sub
rKill.EntireRow.Delete
End Sub

(这将确保所有“x”行也被删除。)

关于vba - Excel - 根据单元格值删除当前行和上面的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38589166/

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