我有點困惑,我試圖遍歷一系列單元格,並檢查此單元格值是否等於存儲在變量中的其他值,如果不是,我想刪除整行。它從範圍中的最後一行開始,但是當我運行這個宏時,它在第一個值之後停止,我想繼續遍歷其他值。如果我再次手動運行它,它會工作,但它會在第一個單元格處停止,其中 cell.value = id1 或 id2。vba中是否有“其他繼續”?或者下一個單元格?我試圖玩這個並使用谷歌搜索它,但沒有運氣。
我在示例中的 ID 值只是;3 & 4. 雖然我循環的值範圍只有 1 到 6
#as 建議如下,當我將 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
更新 - 根據下面的反饋和幫助,我設法解決了這個問題,謝謝大家;這是對我有用的代碼:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句