【发布时间】:2017-09-03 19:21:46
【问题描述】:
I have a sheet that has a List box when that is selected codes appear.如果选择了代码,Excel 会将工作表中的数据(具有相同代码)复制到报价表中。
如果我在同一个列表框中进行更改并选择另一个代码,我需要 excel 去查找旧数据并在报价表中将其删除。
Public Sub delete_selected_rows()
Dim rng1 As Range, rng2 As Range, rngToDel As Range, c As Range
Dim lastRow As Long
With Worksheets("Q")
lastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
Set rng1 = .Range("B1:B" & lastRow)
End With
Set rng2 = Worksheets("SO").Range("D35")
For Each c In rng1
If Not IsError(Application.Match(c.Value, rng2, 0)) Then
'if value from rng1 is found in rng2 then remember this cell for deleting
If rngToDel Is Nothing Then
Set rngToDel = c
Else
Set rngToDel = Union(rngToDel, c)
End If
End If
Next c
If Not rngToDel Is Nothing Then rngToDel.CurrentRegion.Delete
End Sub
如何让 CurrentRegion 计算删除的额外 30 行?
【问题讨论】: