Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2010, 13:58   #1
макарошка
Новичок
Джуниор
 
Аватар для макарошка
 
Регистрация: 03.10.2010
Сообщений: 7
Вопрос VBA_макрос: удалить всю строку в таблице, если в ней есть слово "удалить"

Помогите, пожалуйста, написать такой макрос:
нужно удалить всю строку в таблице, если в ней есть слово "удалить" в столбце L.
таблица большая, и таких строк встречается много...
уже не знаю что делать

Последний раз редактировалось макарошка; 03.10.2010 в 14:03.
макарошка вне форума Ответить с цитированием
Старый 03.10.2010, 14:10   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Попробуйте так:

Код:
Sub test()
    Application.ScreenUpdating = False: On Error Resume Next
    Do
        Range("L:L").Find("удалить", , , xlPart).EntireRow.Delete
    Loop Until Err
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 03.10.2010, 14:16   #3
макарошка
Новичок
Джуниор
 
Аватар для макарошка
 
Регистрация: 03.10.2010
Сообщений: 7
По умолчанию

попробовала, работает почему-то неправильно((

Последний раз редактировалось макарошка; 03.10.2010 в 14:44.
макарошка вне форума Ответить с цитированием
Старый 03.10.2010, 14:18   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

попробовал, работает почему-то правильно )

где пример файла?
EducatedFool вне форума Ответить с цитированием
Старый 03.10.2010, 14:32   #5
макарошка
Новичок
Джуниор
 
Аватар для макарошка
 
Регистрация: 03.10.2010
Сообщений: 7
По умолчанию

вот пример файла
Вложения
Тип файла: rar пример таблицы2003.rar (6.3 Кб, 24 просмотров)
макарошка вне форума Ответить с цитированием
Старый 03.10.2010, 14:55   #6
макарошка
Новичок
Джуниор
 
Аватар для макарошка
 
Регистрация: 03.10.2010
Сообщений: 7
По умолчанию

да, точно он работает правильно
Но у меня слово "удалить" вписано в формулу, видимо поэтому этот макрос удаляет все строки с такой формулой.
макарошка вне форума Ответить с цитированием
Старый 04.10.2010, 13:01   #7
макарошка
Новичок
Джуниор
 
Аватар для макарошка
 
Регистрация: 03.10.2010
Сообщений: 7
По умолчанию

кто-нибудь!! подскажите! предложенный вариант макроса не подходит...((
макарошка вне форума Ответить с цитированием
Старый 04.10.2010, 13:20   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Там надо Find по Value производить, найденное набирать в Union и затем сразу весь Union и удалять.
Или сперва переводить формулы в значения, тогда и этот код сработает, но так ведь не подойдёт?
Писать код некогда...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 04.10.2010, 13:36   #9
макарошка
Новичок
Джуниор
 
Аватар для макарошка
 
Регистрация: 03.10.2010
Сообщений: 7
По умолчанию

Т.е. как?
Я не знаю как всё это записывается. Извините, что туплю ...ну в общем-то потому и спрашиваю

Последний раз редактировалось макарошка; 05.10.2010 в 05:16.
макарошка вне форума Ответить с цитированием
Старый 04.10.2010, 14:45   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Вот такая переработка кода EducatedFool
Код:
Option Explicit

Sub test()
Dim oRNG As Range, X As Range, iFirstAddress As String

Application.ScreenUpdating = False
    
Set X = Range("L:L").Find(what:="удалить", LookIn:=xlValues, LookAt:=xlPart)

If Not X Is Nothing Then
    iFirstAddress = X.Address
    Do
        Set X = Range("L:L").FindNext(X)
            If oRNG Is Nothing Then Set oRNG = X Else Set oRNG = Union(oRNG, X)
    Loop While Not X Is Nothing And X.Address <> iFirstAddress
End If

oRNG.EntireRow.Delete

Application.ScreenUpdating = True
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 04.10.2010 в 14:51. Причина: чуть подправил
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Код символа "BackSpase" в ANSI(Если такой есть...) ChEaTeR-abc Помощь студентам 3 30.06.2010 17:39
Удалить строки "(пусто)" в сводной таблице kipish_lp Microsoft Office Excel 12 06.05.2010 10:21
Как удалить ярлык из папки "Автозагрузка"? docbrain Общие вопросы Delphi 5 15.01.2010 11:27
необходимо сообщение - "не введено число", если вводится слово Sour Помощь студентам 6 23.08.2007 19:49
как удалить анти вирус( касперский 2006)если она не работает и ее не возможно удалить Alar Общие вопросы Delphi 0 29.10.2006 21:36