Доброго дня. В общем чтото я немогу написать казалось бы простой макрос, (не программист я всё таки ), поэтому прошу помощи. Необходимо найти в 1 столбике строку которая содержит слово "Дом"(на картинке 8 строка), а затем после неё добавить 2 строки "Площадь жилая" и "Площадь нежилая".
Примерный вид как должно получиться
Доброго дня. В общем чтото я немогу написать казалось бы простой макрос, (не программист я всё таки ), поэтому прошу помощи. Необходимо найти в 1 столбике строку которая содержит слово "Дом"(на картинке 8 строка), а затем после неё добавить 2 строки "Площадь жилая" и "Площадь нежилая".
А версия Excel у вас какая? Попробуйте с таким Set pFind = ActiveSheet.Cells.Find("дом *", ActiveSheet.Range("A1"))
версия 2007, с таким вариантом работает, спасибо! а можно ли данный код сделать через цикл, чтобы при множестве данных, при каждом нахождении слова "ДОМ" добавляло также 2 строки ?
А версия Excel у вас какая? Попробуйте с таким Set pFind = ActiveSheet.Cells.Find("дом *", ActiveSheet.Range("A1"))
версия 2007, с таким вариантом работает, спасибо! а можно ли данный код сделать через цикл, чтобы при множестве данных, при каждом нахождении слова "ДОМ" добавляло также 2 строки ?Cudass
Сообщение отредактировал Cudass - Среда, 02.10.2013, 09:56
Public Sub InsAfterHouse() Dim pFind As Range, sAddress As String With ActiveSheet.Cells Set pFind = .Find("дом *", ActiveSheet.Range("A1")) If Not pFind Is Nothing Then sAddress = pFind.Address Do ActiveSheet.Rows(CStr(pFind.Row + 1) & ":" & CStr(pFind.Row + 2)).EntireRow.Insert xlShiftDown pFind.Offset(1, 0).Value = "Площадь жилая" pFind.Offset(2, 0).Value = "Площадь нежилая" Set pFind = .FindNext(pFind) Loop Until (pFind.Address = sAddress) Or (pFind Is Nothing) End If End With End Sub
[/vba] Успехов.
[vba]
Код
Public Sub InsAfterHouse() Dim pFind As Range, sAddress As String With ActiveSheet.Cells Set pFind = .Find("дом *", ActiveSheet.Range("A1")) If Not pFind Is Nothing Then sAddress = pFind.Address Do ActiveSheet.Rows(CStr(pFind.Row + 1) & ":" & CStr(pFind.Row + 2)).EntireRow.Insert xlShiftDown pFind.Offset(1, 0).Value = "Площадь жилая" pFind.Offset(2, 0).Value = "Площадь нежилая" Set pFind = .FindNext(pFind) Loop Until (pFind.Address = sAddress) Or (pFind Is Nothing) End If End With End Sub