gpt4 book ai didi

vba - Excel 宏查找文本并选择从该文本到下一行的行

转载 作者:行者123 更新时间:2023-12-03 01:59:38 26 4
gpt4 key购买 nike

我需要一个宏来查找此文本:“XYZ”和“*报告”

然后选择从 XYZ 到 *Report 的行并删除包括所选内容的所有行。

我已经这样做了:

Sub DelWordsCol()

Dim c As Range
Dim d As Range
Dim SrchRng

Set SrchRng = ActiveSheet.Range("A1", ActiveSheet.Range("A65536").End(xlUp)

Do
set c=SrchRng.Find("XYZ", LookIn:=xlValues)
if not c Is Nothing Then c.EntireRow.Delete
Loop while Not c Is Nothing

Do
set d=SrchRng.Find("*Report", LookIn:=xlValues)
if not d Is Nothing Then d.EntireRow.Delete
Loop while Not c Is Nothing

End Sub

' 我无法使用调整大小,因为从“XYZ”到“*.Report”的行数可以是 8 或 9 或任何值。'我可以删除特定行,但不能删除从“XYZ”到“*Report”的范围。

最佳答案

如果您已经确定了 c 和 d,则只需使用这两个单元格来定义和删除范围:

Option Explicit
Sub DelRange()
Dim c As Range
Dim d As Range
Const lSrchCol As Long = 1 'searching column A

With ActiveSheet.Columns(lSrchCol)
Set c = .Find(what:="XYZ", LookIn:=xlValues)
Set d = .Find(what:="*Report", LookIn:=xlValues)
End With

If Not c Is Nothing And Not d Is Nothing Then _
Range(c, d).EntireRow.Delete

End Sub

如果列中可能有多个 XYZ 和报告对,您可能需要在 .Find 中使用其他一些可选参数以实现稳健性。

如果有多个对,那么您可能需要指定起始点,并设置一个 Do ... 循环,当 c 和 d 为零时退出。

如果第一个 XYZ 可能报告之后出现,您可能还需要检查以确保它们的顺序正确,否则错误的行将被删除。

关于vba - Excel 宏查找文本并选择从该文本到下一行的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33714637/

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