Здравствуйте! Помогите построить макрос. Нужно на листе2 найти строку с данными и удалить их. Строка должна начинаться со значения идентичного значению в ячейке А2 на листе1.
Написал такой код в общем модуле:
[vba]Код
Sub RemoveDate(sStr As String)
Dim Range As Range
Dim a()
Dim b As Long
Dim c As Long
With Лист2
b = .UsedRange.Rows.Count
a = .Range("A:A" & b).Value
For c = 1 To b
If a(c, 1) = sStr Then
.Range(Cells(c, 1), Cells(c, 4)).ClearContents
Exit Sub
End If
Next c
End With
End Sub
[/vba]
И такой макрос в модуле листа:
[vba]Код
Sub Remove()
Call RemoveDate(Range("A2").Value)
End Sub
[/vba]
Но выдает ошибку.
И второй вопрос - является ли такой код оптимальным для этой цели, или можно как то по другому сделать без циклов?