Уважаемые гуру форума, подскажите как решить небольшую проблему. Ситуация следующая в: в ячейках А1:А5 находятся даты, в ячейках В1:В5 имеется признак отбора (в примере буква В), требуется выбрать уникальные даты. Сейчас эта проблема успешно решается следующим кодом:
Код |
---|
Private Sub CommandButton1_Click() 'выборка уникальных дат
Range("C2:C4").ClearContents
Dim vItem As Variant, avArr As Variant, li As Long
ReDim avArr(1 To Rows.Count, 1 To 1)
With New Collection
On Error Resume Next
For Each vItem In ActiveSheet.Range("A2", Cells(Rows.Count, 1).End(xlUp)).Value 'определяет последнюю заполненную ячейку в столбце A
.Add vItem, CStr(vItem)
If Err = 0 Then
li = li + 1: avArr(li, 1) = vItem
Else: Err.Clear
End If
Next
End With
If li Then [C2].Resize(li).Value = avArr
End Sub
|
Но теперь потребовалось, чтобы в отборе участвовали только те ячейки, рядом с которыми отсутствует признак отбора, т.е. в данном случае отобраться должны только даты 02.01.2015 и 03.01.2015 ,т.к. все ячейки с датой 01.01.2015 имеют признак в соответствующих ячейках. Признак, разумеется, может быть (или не быть) в любых ячейках указанного диапазона. Что нужно дописать в коде, чтобы было так? Заранее спасибо всем откликнувшимся.