如何使用 Excel VBA 选择特定字符后出现的一定数量的行

问题描述 投票:0回答:1

我有一个导出的工作表,其中包含 3 个无用行(包含无用文本),这些行夹在两个包含“------------”的单元格之间,在不同数量的有用数据行之后。那些无用的行在某些时候的含义并不统一,它们出现在 8 行有用数据之后,有时出现在 9 行之后,等等

我需要删除那些无用的行,但工作表非常大。所以,我必须使用VBA来解决这个问题。

作为初学者,我已根据自己的最佳能力编写了以下代码:

Application.ActiveSheet.Select("------------")

范围(选择).行(1:3).删除

但是不起作用。

请指导我以下两点:

  1. 如何选择两个包含“------------”的单元格之间出现的 3 行(撇号实际上不在单元格中;它们只是为您准备的)?

  2. 我可以使用删除关键字删除那些选定的行还是我需要其他东西?

感谢您的帮助。

干杯。

excel vba select row
1个回答
0
投票

您可以使用下面的宏。它将删除该行中的值至少包含 3 个破折号“---”的任何行。但是,您可以将 - 的最小数量更改为您需要的任何数量。

Sub DeleteRows()

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Set WS = ActiveSheet

For i = Cells.SpecialCells(xlLastCell).Row To 1 Step -1

If WS.Cells(i, i).Value Like "*---*" Then WS.Cells(i, i).EntireRow.Delete

Next

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.