簡體   English   中英

如果列 H 包含以下任何值,則刪除行 - VBA

[英]Delete row if Column H contains any of the following values - VBA

如果 H 列包含以下任何值,我想刪除一行:

1) %
2) Resistor
3) Capacitor
4) MCKT
5) Connector
6) anything else I may want to add to this list...

在谷歌上找到並編輯 - 它運作良好 - 不確定是否有更“有效”的方法來做到這一點。

Sub DeleteRows()
lastrow = Cells.SpecialCells(xlCellTypeLastCell).Row
readrow = 1
For n = 1 to lastrow
  If Range("H" & ReadRow).Value = "%" Or _
    Range("H" & ReadRow).Value = "Resistor" Or _
    Range("H" & ReadRow).Value = "Capacitor" Or _
    Range("H" & ReadRow).Value = "MCKT" Or _
    Range("H" & ReadRow).Value = "Connector" Then
    Range("H" & ReadRow).EntireRow.Delete
    Else
      readrow = readrow + 1
    End If
  Next
End Sub

有更有效的方法,但使用此方法:

  1. 向后循環。
  2. 將 ReadRow 更改為 n,有兩個變量沒有意義:

代碼:

Sub DeleteRows()
Dim Lastrow as long, n as long
lastrow = Cells.SpecialCells(xlCellTypeLastCell).Row

For n =  lastrow to 1 Step -1
  If Range("H" & n).Value = "%" Or _
    Range("H" & n).Value = "Resistor" Or _
    Range("H" & n).Value = "Capacitor" Or _
    Range("H" & n).Value = "MCKT" Or _
    Range("H" & n).Value = "Connector" Then
        Rows(n).Delete
  End If
Next
End Sub

另一種方法是使用Select Case

Sub DeleteRows()
Dim Lastrow as long, n as long
lastrow = Cells.SpecialCells(xlCellTypeLastCell).Row

For n =  lastrow to 1 Step -1

  Select Case Range("H" & n).Value 
      Case "%","Resistor","Capacitor","MCKT","Connector"
        Rows(n).Delete
  End Select
Next
End Sub

它可以更輕松地添加到列表中。

這很好用。

Option Explicit
Option Compare Text

Sub Delete_Rows()

Dim LastRow As Long, ReadRow As Long, n As Long

With ThisWorkbook.Sheets("Sheet1")
    LastRow = .Cells(.Rows.Count, "H").End(xlUp).row
End With

ReadRow = 1
For n = 1 To LastRow
  If Range("H" & ReadRow).Value Like "*%*" = True Or _
    Range("H" & ReadRow).Value Like "*Resistor*" = True Or _
    Range("H" & ReadRow).Value Like "*Transistor*" = True Or _
    Range("H" & ReadRow).Value Like "*Micro*" = True Then
      Range("H" & ReadRow).EntireRow.Delete
    Else
      ReadRow = ReadRow + 1
    End If
  Next
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM