Здравствуйте! Помогите построить макрос. Нужно на листе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] Но выдает ошибку. И второй вопрос - является ли такой код оптимальным для этой цели, или можно как то по другому сделать без циклов?
Здравствуйте! Помогите построить макрос. Нужно на листе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] Но выдает ошибку. И второй вопрос - является ли такой код оптимальным для этой цели, или можно как то по другому сделать без циклов?Mexo
Нужно на листе2 найти строку с данными и удалить их.
Может так? [vba]
Код
Sub www() Dim x$, b&, c& x = Range("A2") With Sheets("Лист2") b = .UsedRange.Rows.Count For c = 1 To b If .Cells(c, "A") = x Then .Range(.Cells(c, 1), .Cells(c, 4)).ClearContents End If Next c End With End Sub
Нужно на листе2 найти строку с данными и удалить их.
Может так? [vba]
Код
Sub www() Dim x$, b&, c& x = Range("A2") With Sheets("Лист2") b = .UsedRange.Rows.Count For c = 1 To b If .Cells(c, "A") = x Then .Range(.Cells(c, 1), .Cells(c, 4)).ClearContents End If Next c End With End Sub