我正在尝试编写一个根据特定条件删除行的宏。我目前拥有的宏可以工作,但它不允许有 30 个值。我在第 25 行之后收到“Too Many Line Continuations”错误。 我想删除所有不包含列出的 30 个字段的行,并保留标题行。
Sub DeleteRow()
Dim row_count As Long
Dim i As Long
Dim ws As Worksheet
Dim my_string As String
Set ws = ThisWorkbook.Sheets("Test")
ws.Activate
row_count = ws.Cells(Rows.Count, "A").End(xlUp).Row
i = 2
Do While i <= row_count
my_string = ws.Cells(i, 5).Text
If InStr(my_string, "A") = 0 _
And InStr(my_string, "B") = 0 _
And InStr(my_string, "C") = 0 _
And InStr(my_string, "D") = 0 _
And InStr(my_string, "E") = 0 _
And InStr(my_string, "F") = 0 _
And InStr(my_string, "G") = 0 Then
Rows(i).EntireRow.Delete
i = i - 1
row_count = row_count - 1
End If
i = i + 1
Loop
End Sub
添加到 BigBens 评论:
Dim CharArray(29) As String
CharArray(0) = "A"
CharArray(1) = "B"
CharArray(2) = "C"
等等
然后对于 If 语句:
Do While i <= row_count
my_string = ws.Cells(i, 5).Text
For j = 0 To 29
If InStr(my_string, CharArray(j)) = 1 Then
GoTo Skip
End If
Rows(i).EntireRow.Delete
i = i - 1
row_count = row_count - 1
Next
Skip:
i = i + 1
Loop
End Sub
这会循环遍历所有条件,如果 1 不是 0,则会跳过。