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

Вход

Регистрация

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

 

= Мир MS Excel/Удаление строк после поиска значения - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Удаление строк после поиска значения
konstantinp Дата: Среда, 11.07.2012, 12:18 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 86
Репутация: 0 ±
Замечаний: 0% ±

Добрый день, Коллеги,
Нужен макрос:
Есть список в котором множество значений, нужно, чтобы макрос нашел определенное значение и все строки, которые выше его удалил.

Помогите, пазязя)))

Просьба
Если прикрепляете файл, упаковывайте в архив. А то при скачивании, я подозреваю он проходит какие то проверки безопасности и криво отображается в последствии.
Комп рабочий, ничего не могу поделать с этим.
Спасибо.
К сообщению приложен файл: 1192579.xls (20.0 Kb)
 
Ответить
СообщениеДобрый день, Коллеги,
Нужен макрос:
Есть список в котором множество значений, нужно, чтобы макрос нашел определенное значение и все строки, которые выше его удалил.

Помогите, пазязя)))

Просьба
Если прикрепляете файл, упаковывайте в архив. А то при скачивании, я подозреваю он проходит какие то проверки безопасности и криво отображается в последствии.
Комп рабочий, ничего не могу поделать с этим.
Спасибо.

Автор - konstantinp
Дата добавления - 11.07.2012 в 12:18
Hugo Дата: Среда, 11.07.2012, 12:33 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
[vba]
Code
Sub tt()
Range("a1", Cells.Find("Заданное значение").Offset(, -1)).EntireRow.Delete
End Sub
[/vba]


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщение[vba]
Code
Sub tt()
Range("a1", Cells.Find("Заданное значение").Offset(, -1)).EntireRow.Delete
End Sub
[/vba]

Автор - Hugo
Дата добавления - 11.07.2012 в 12:33
konstantinp Дата: Среда, 11.07.2012, 15:55 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 86
Репутация: 0 ±
Замечаний: 0% ±

Hugo,
Спасибо!
А если за исключением первых 3 строк?
 
Ответить
СообщениеHugo,
Спасибо!
А если за исключением первых 3 строк?

Автор - konstantinp
Дата добавления - 11.07.2012 в 15:55
_Boroda_ Дата: Среда, 11.07.2012, 16:26 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16715
Репутация: 6504 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Распишу макрос уважаемого Hugo (Игорь, надеюсь, ты не против) словами, чтобы Вы могли сами менять то, что Вам нужно
Sub tt()
Range("a1", Cells.Find("Заданное значение").Offset(, -1)).EntireRow.Delete
End Sub

Range означает диапазон, "A1" - его начало
Cells.Find("Заданное значение").Offset(, -1)
Cells - все ячейки, ищем в них с помощью Find значение "Заданное значение" и от этого найденного смещаемся с помощью Offset (кол-во строк вниз, кол-во столбцов вправо) - у нас Offset(,-1), значит, вниз на 0, и влево на 1. Все это целиком даст нам окончание диапазона Range. Затем, с помощью EntireRow получаем все строки этого диапазона и убиваем из с помощью Delete.
Quote
А если за исключением первых 3 строк?

Тогда первая строка для удаления будет не 1, а 4, следовательно, не Range("a1",..., а Range("a4",...
Кстати, по-моему, Offset нужно написать так Offset(-1)
Range("a1", Cells.Find("Заданное значение").Offset(-1)).EntireRow.Delete


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеРаспишу макрос уважаемого Hugo (Игорь, надеюсь, ты не против) словами, чтобы Вы могли сами менять то, что Вам нужно
Sub tt()
Range("a1", Cells.Find("Заданное значение").Offset(, -1)).EntireRow.Delete
End Sub

Range означает диапазон, "A1" - его начало
Cells.Find("Заданное значение").Offset(, -1)
Cells - все ячейки, ищем в них с помощью Find значение "Заданное значение" и от этого найденного смещаемся с помощью Offset (кол-во строк вниз, кол-во столбцов вправо) - у нас Offset(,-1), значит, вниз на 0, и влево на 1. Все это целиком даст нам окончание диапазона Range. Затем, с помощью EntireRow получаем все строки этого диапазона и убиваем из с помощью Delete.
Quote
А если за исключением первых 3 строк?

Тогда первая строка для удаления будет не 1, а 4, следовательно, не Range("a1",..., а Range("a4",...
Кстати, по-моему, Offset нужно написать так Offset(-1)
Range("a1", Cells.Find("Заданное значение").Offset(-1)).EntireRow.Delete

Автор - _Boroda_
Дата добавления - 11.07.2012 в 16:26
Hugo Дата: Среда, 11.07.2012, 16:42 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Я не против.
Напротив, спасибо за поправку с оффсетом - ошибся второпях... smile


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеЯ не против.
Напротив, спасибо за поправку с оффсетом - ошибся второпях... smile

Автор - Hugo
Дата добавления - 11.07.2012 в 16:42
konstantinp Дата: Среда, 11.07.2012, 17:05 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 86
Репутация: 0 ±
Замечаний: 0% ±

Спасибо большое, ребятушки)))
сейчас еще напишу что-нибудь) собираю по частям макрос)
 
Ответить
СообщениеСпасибо большое, ребятушки)))
сейчас еще напишу что-нибудь) собираю по частям макрос)

Автор - konstantinp
Дата добавления - 11.07.2012 в 17:05
  • Страница 1 из 1
  • 1
Поиск:

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