Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск по слову - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск по слову (Макросы Sub)
Поиск по слову
Cudass Дата: Среда, 02.10.2013, 08:40 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Доброго дня. В общем чтото я немогу написать казалось бы простой макрос, (не программист я всё таки :) ), поэтому прошу помощи.
Необходимо найти в 1 столбике строку которая содержит слово "Дом"(на картинке 8 строка), а затем после неё добавить 2 строки "Площадь жилая" и "Площадь нежилая".

Примерный вид как должно получиться

:'( %)


Сообщение отредактировал Cudass - Среда, 02.10.2013, 08:40
 
Ответить
СообщениеДоброго дня. В общем чтото я немогу написать казалось бы простой макрос, (не программист я всё таки :) ), поэтому прошу помощи.
Необходимо найти в 1 столбике строку которая содержит слово "Дом"(на картинке 8 строка), а затем после неё добавить 2 строки "Площадь жилая" и "Площадь нежилая".

Примерный вид как должно получиться

:'( %)

Автор - Cudass
Дата добавления - 02.10.2013 в 08:40
anvg Дата: Среда, 02.10.2013, 08:56 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Добрый день.
<_< Примерный вариант макроса
К сообщению приложен файл: 1913876.png (11.8 Kb)


Сообщение отредактировал anvg - Среда, 02.10.2013, 08:57
 
Ответить
СообщениеДобрый день.
<_< Примерный вариант макроса

Автор - anvg
Дата добавления - 02.10.2013 в 08:56
Cudass Дата: Среда, 02.10.2013, 09:20 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
anvg, ругается Run-time error '1004' : Method 'Range' of object'_Global' failed
на данную строку "Set pFind = ActiveSheet.UsedRange.Find("дом*", Range("А1"))"
может чтото ещё нужно прописать ? подскажите пожалуйста
 
Ответить
Сообщениеanvg, ругается Run-time error '1004' : Method 'Range' of object'_Global' failed
на данную строку "Set pFind = ActiveSheet.UsedRange.Find("дом*", Range("А1"))"
может чтото ещё нужно прописать ? подскажите пожалуйста

Автор - Cudass
Дата добавления - 02.10.2013 в 09:20
anvg Дата: Среда, 02.10.2013, 09:27 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Цитата
Run-time error '1004' : Method 'Range' of object'_Global' failed

А версия Excel у вас какая?
Попробуйте с таким
Set pFind = ActiveSheet.Cells.Find("дом *", ActiveSheet.Range("A1"))
 
Ответить
Сообщение
Цитата
Run-time error '1004' : Method 'Range' of object'_Global' failed

А версия Excel у вас какая?
Попробуйте с таким
Set pFind = ActiveSheet.Cells.Find("дом *", ActiveSheet.Range("A1"))

Автор - anvg
Дата добавления - 02.10.2013 в 09:27
Cudass Дата: Среда, 02.10.2013, 09:33 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
anvg,
А версия Excel у вас какая?
Попробуйте с таким
Set pFind = ActiveSheet.Cells.Find("дом *", ActiveSheet.Range("A1"))

версия 2007, с таким вариантом работает, спасибо!
а можно ли данный код сделать через цикл, чтобы при множестве данных, при каждом нахождении слова "ДОМ" добавляло также 2 строки ?


Сообщение отредактировал Cudass - Среда, 02.10.2013, 09:56
 
Ответить
Сообщениеanvg,
А версия Excel у вас какая?
Попробуйте с таким
Set pFind = ActiveSheet.Cells.Find("дом *", ActiveSheet.Range("A1"))

версия 2007, с таким вариантом работает, спасибо!
а можно ли данный код сделать через цикл, чтобы при множестве данных, при каждом нахождении слова "ДОМ" добавляло также 2 строки ?

Автор - Cudass
Дата добавления - 02.10.2013 в 09:33
anvg Дата: Среда, 02.10.2013, 10:19 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
[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
[/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
[/vba]
Успехов.

Автор - anvg
Дата добавления - 02.10.2013 в 10:19
Cudass Дата: Среда, 02.10.2013, 10:23 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Успехов.

спасибо огромное вы сильно облегчили мне работу ! плюсую вам однозначно.
 
Ответить
Сообщение
Успехов.

спасибо огромное вы сильно облегчили мне работу ! плюсую вам однозначно.

Автор - Cudass
Дата добавления - 02.10.2013 в 10:23
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск по слову (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!