Всем доброго времени суток.
Есть задача на одном листе "Общий" найти ячейку с заданным значением.
Выделить строку с найденной ячейкой.
Перенести её на лист "Буденновский".
Я далеко не силён в написании макросов. Сломал уже всё голову.
При запуске макрос отрабатывает один раз и останавливается. При повторном запуске, без закрытия книги, Excel зависает.
Код |
---|
Sub Макрос1()
Dim a, b, c, e As Integer
Do ' Поиск пустой ячейки для вставки.
a = 3
If ThisWorkbook.Sheets("Буденновский").Cells(a, 1) > "" Then
a = a + 1
End If
Loop Until Cells(a, 1) = ""
' Поиск ячейки с заданным значением.
Set b = ThisWorkbook.Sheets("Общий").Range("G:G").Find(What:="Буденновский", _
LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, _
SearchFormat:=False)
Do
' Получаем номер строки
c = Mid(b.Address, (InStr(2, b.Address, "$") + 1))
If Not b Is Nothing Then
Sheets("Общий").Activate
Range(Cells(c, 1), Cells(c, 7)).Cut
Sheets("Буденновский").Activate
Range(Cells(a, 1), Cells(a, 7)).Select
ActiveSheet.Paste
Set b = Range("G:G").FindNext(b)
End If
Loop While b Is Nothing
End Sub |