【发布时间】:2019-08-17 03:38:17
【问题描述】:
我已经有一段时间没有使用 VBA 了。我有一系列唯一值,我想在表格中搜索。如果这些值存在于所述表中,则删除整行。
我能够遍历并删除特定的奇异值,但在处理多个值时遇到了困难。我试过用 Range() 和一个数组替换“30ExGEPAc30Q4”(下面的代码),但不太明白。到目前为止,这是我所得到的:
Sub test()
Dim x As Long
Dim lastrow As Long
lastrow = Sheets("LRP").ListObjects("Data_LRP").Range.Rows.Count
Worksheets("LRP").Activate
For x = lastrow To 1 Step -1
If Cells(x, 1).Value = "30ExGEPAc30Q4" Then
Rows(x).Delete
End If
Next x
End Sub
【问题讨论】:
-
像这样使用
If和And:If Cells(x, 1) = "30xGEPAc30Q4" And Cells(x, 2) = "Whatever" Then以为您没有将Cells或Rows引用到任何工作表,所以请注意这一点。您可以嵌套任意数量的条件,但这不是要走的路。 -
@Damian,感谢您的回复!我想我应该提到我的条件是一系列单元格,而不是静态值。我使用静态字符串“30xGEPAc30Q4”来测试我的删除行循环是否按预期工作,但我希望用我的动态单元格范围替换它。感谢您的帮助!
-
@Sam 感谢您的快速回复!该线程有助于完成我上面的工作,但我希望搜索和删除多个值。我正在寻求帮助,用一系列值替换他们的奇异搜索值。在一个范围内搜索存在于另一个范围内的任何值。感谢您的帮助!
-
如果您要使用数组,那么您将在
For x = lastrow To 1 Step -1之后添加另一个循环来检查数组中的每个值。例如For i = LBound(Arr) To UBound(Arr),您的If x = Arr(i),在End If下方添加Next