Я все еще новичок в VBA.Это новый пост, созданный, поскольку я не был достаточно конкретен в предыдущем.
Моя цель: я хочу удалить строку данных, основанную на столбце данных из другого листа.
У меня естьназвание листа данных: WorkingData
.
WorkingData
- это список базы данных с ProductIDs
, который находится под столбцом A. productIDs
будет существовать более одного раза, поскольку он идентифицирован по периоду.
ProductIDs Date
132 30/9/2018
132 30/8/2018
132 30/7/2018
122 30/9/2018
122 30/8/2018
11 30/7/2018
11 30/6/2018
...
Sheets (ID для исключения)
ProductID
11
23
55
34
.....
У меня есть внешнее имя листа: IDs to exclude
.
В Sheets("IDs to exclude")
в столбце A есть список идентификаторов для исключенияпотому что они нечистые данные.Однако каждый месяц список будет продолжать складываться , поэтому диапазон должен идентифицировать последнюю строку.
Это мой код, но я могу делать это только построчно.Есть тысячи ввода данных.пожалуйста посоветуйте спасибо!
Sub delete_Ids()
Dim c As Range, MyVals As Range, SrchRng As Range
Dim i As Long, lr1 As Long, lr2 As Long, x
'This is a range containing all the criteria to search for
lr1 = Sheets("WorkingData").Cells(Rows.Count, "A").End(xlUp).Row
Set MyVals = Sheets("ProductIDs to Exclude").Range("A2:A" & lr1)
Set SrchRng = Selection
lr2 = SrchRng.Rows.Count
For i = lr2 To 1 Step -1
For Each c In MyVals
x = InStr(SrchRng(i), c)
If x > 0 Then
SrchRng(i).EntireRow.Delete
Exit For
End If
Next c
Next i
End Sub