如果滿足特定條件,則循環遍歷範圍並刪除行

eM_Sk

我有點困惑,我試圖遍歷一系列單元格,並檢查此單元格值是否等於存儲在變量中的其他值,如果不是,我想刪除整行。它從範圍中的最後一行開始,但是當我運行這個宏時,它在第一個值之後停止,我想繼續遍歷其他值。如果我再次手動運行它,它會工作,但它會在第一個單元格處停止,其中 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

eM_Sk

更新 - 根據下面的反饋和幫助,我設法解決了這個問題,謝謝大家;這是對我有用的代碼:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

當條件滿足時,我的 while 循環不會結束

使用條件 Javascript 循環遍歷 arrayObjects

如果在 vb.Net 中滿足條件,則更改 Excel 範圍中的行顏色

如何循環遍歷一列,並且當某個值被命中時,會根據同一行中的值發送一封電子郵件,並在設定範圍內執行此操作?

Swift:數組 - 滿足條件時刪除元素

為未滿足的每個條件從列表中刪除多個項目

循環遍歷數組並檢查多個條件

循環遍歷目錄並對 unix 中具有特定權限的文件執行操作

awk - 如果條件滿足則計算百分比

如果滿足條件,則替換 Numpy 中的行

如果滿足特定條件,如何復製表格?

在SAS範圍內滿足特定條件時刪除行

如果滿足條件,則 sql 查詢以排除結果

Excel VBA(非常慢)如果滿足條件,則將整行移動到底部

刪除滿足一個條件的所有記錄

如何從滿足多個條件的數據框中刪除特定行(python pandas)?

如果滿足條件則覆蓋變量,否則保留現有值

循環遍歷列表以獲取python中給定範圍的最大總和

如果不滿足條件,如何避免返回 undefined

當滿足 for 循環中的條件時,將行中的值附加到同一行但在新列中

R:滿足條件時停止循環

如果特定日期範圍內的所有值都是使用 Pandas 的 NaN,則刪除列

如何使用基於範圍的“for”循環遍歷不同類型的地圖集合?

RxSwift - 如果條件滿足,則阻止/停止/忽略事件

在滿足條件時循環遍歷子列表的所有元素 - While 循環是否過早地跳出迭代?

如果滿足某些條件,則將幾列合併為一列

Laravel 如果不滿足路由條件則忽略

C++ 循環遍歷集合/列表並刪除當前條目

如果 str_ireplace() 不滿足 php 條件