我有點困惑,我試圖遍歷一系列單元格,并檢查此單元格值是否等于存盤在變數中的其他值,如果不是,我想洗掉整行。它從范圍中的最后一行開始,但是當我運行這個宏時,它在第一個值之后停止,我想繼續回圈遍歷其他值。如果我再次手動運行它,它會作業,但它會在第一個單元格處停止,其中 cell.value = id1 或 id2。vba中是否有“其他繼續”?或者下一個單元格?我試圖玩這個并使用谷歌搜索它,但沒有運氣。
我在示例中的 ID 值只是;3 & 4. 雖然我回圈的值范圍只有 1 到 6
#如下建議,當我將 ws2.Range("A" & LastRow) 更改為 ws2.Range("A1:A" & LastRow) 時,它有點作業,但它不會一次遍歷所有單元格,但我需要運行此宏兩次...以洗掉所有不需要的單元格...這令人困惑
Sub DeleteRows()
Dim cell As Range
Dim wb As Workbook: Set wb = ThisWorkbook
Set ws = wb.Sheets("ID_value_source")
Set ws2 = wb.Sheets("Sheet2")
Dim LastRow As Long
id1 = ws.Range("A2").Value
id2 = ws.Range("A3").Value
ws2.Activate
LastRow = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row
For Each cell In ws2.Range("A" & LastRow)
If cell.Value <> id1 And cell.Value <> id2 Then
cell.EntireRow.Delete
End If
Next cell
End Sub
謝謝 eM
uj5u.com熱心網友回復:
更新 - 根據下面的反饋和幫助,我設法解決了這個問題,謝謝大家;這是對我有用的代碼:
Sub del_Rows()
Dim wb As Workbook: Set wb = ThisWorkbook
Set ws = wb.Sheets("ID_value_source")
Set ws2 = wb.Sheets("Sheet1")
Dim LastRow As Long
id1 = ws.Range("A2").Value
id2 = ws.Range("A3").Value
LastRow = ws2.Range("A" & ws2.Rows.Count).End(xlUp).Row
For i = LastRow To 2 Step -1
If ws2.Cells(i, 1).Value <> id1 And ws2.Cells(i, 1).Value <> id2 Then ws2.Rows(i & ":" & i).EntireRow.Delete
Next i
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/350318.html
標籤:vba
上一篇:如何遍歷VBA上的多個單元格值?
