Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » макро удалит из Excel строку

Ответить
Настройки темы
макро удалит из Excel строку

Аватара для Ginger

Рыжая


Сообщения: 1550
Благодарности: 19

Профиль | Сайт | Отправить PM | Цитировать


нужна помощь с macro в Excel.

надо чтобы макро удаляло строки (целые row) из Excel файла, где встречаются заданые слова (при чем они могут встрачатся меж другими словами) в любой из колонок строки.

-------
ХР, 2000, NT - BSOD (синие экраны смерти) русский перевод


Отправлено: 17:49, 29-09-2005

 

Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


Начерно, без изысков:
Код: Выделить весь код
Sub Macros1()

strTarget$ = "la-la-la"    ' <----- Place word (substring) to find here
nTotal = Rows.Count        ' <----- Place rows range here (1 to nTotal)

strTarget1$ = strTarget$ + " "
strTarget2$ = " " + strTarget$
strTarget3$ = " " + strTarget$ + " "

For I = 1 To nTotal ' don't use Rows.Count here

again:
bFound = 0

For J = 1 To Columns.Count
strThis$ = Cells(I, J)
If strThis$ = strTarget$ Then bFound = 1
If InStr(strThis$, strTarget1$) Then bFound = 1
If InStr(strThis$, strTarget2$) Then bFound = 1
If InStr(strThis$, strTarget3$) Then bFound = 1
Next J

If bFound = 0 Then GoTo notfound
Rows(I).Select
Selection.Delete Shift:=xlUp
GoTo again

notfound:
Next I

End Sub

Отправлено: 11:00, 30-09-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


Удаляются строки, содержащие
1. ТОЧНО подстроку для поиска,
2. Подстроку, отделённую справа-слева пробелами
3. Подстроку, отделённую слева пробелом
3. Подстроку, отделённую справа пробелом

Т.е. для варианта "la-la-la":
Будут удалены
"la-la-la"
"la-la-la 3463 27652 "
"6543658 4678 4576 la-la-la 5678"
"555 la-la-la"
"555555la-la-la 55"
"5555 la-la-la555"
Но не будет удалено:
"555la-la-la555" (оставлено специально)
"555,la-la-la,555" (Вот это уже хуже)

Отправлено: 11:05, 30-09-2005 | #3


Аватара для Ginger

Рыжая


Сообщения: 1550
Благодарности: 19

Профиль | Сайт | Отправить PM | Цитировать


hasherfrog
хм... как-то не очень на VB похоже...

а если у меня несколько слов с которыми нужно удалять строки?
мне нужна array.

-------
ХР, 2000, NT - BSOD (синие экраны смерти) русский перевод


Отправлено: 02:04, 01-10-2005 | #4


Старожил


Сообщения: 401
Благодарности: 10

Профиль | Отправить PM | Цитировать


hasherfrog
Я бы вставил еще строчку
Код: Выделить весь код
Rows(I).Select
Selection.Delete Shift:=xlUp
nTotal = nTotal - 1
GoTo again
Не могу въехать почему Rows.Count прямо в цикле использовать нельзя?

Ginger
Самый простой тупой и медленный вариант - принимать strTarget$ в данной процедуре параметром. Соответственно вызывать эту процедуру для каждого элемента вашего массива.

-------
Успехов.


Отправлено: 10:04, 03-10-2005 | #5


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


>> мне нужна array.
А как Вы его задаёте? Мне тут не совсем понятно, можно его внутри макроса определить, или его пользователь как-то вводит в окошечках, или ещё как?

aESThete
>> Не могу въехать почему Rows.Count прямо в цикле использовать нельзя?
Э-э-э... Я уже не знаю, может, это у меня артефакт какой-то остался?...

Отправлено: 12:46, 06-10-2005 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » макро удалит из Excel строку

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - [решено] Как удалит пасс с сетки? nod201 Microsoft Windows 2000/XP 4 31-07-2009 15:30
Интерфейс - Нужен твик -убрать в проводнике "Избранные ссылки", адресную строку и строку поиска Mishechka Microsoft Windows Vista 18 16-09-2008 16:19
Доступ - Шифрование или аудит как получит доступ или удалит все старую nod201 Microsoft Windows 2000/XP 1 03-02-2008 22:28
Excel | преобразовать строку в столбец BRAT2 Хочу все знать 2 19-12-2005 17:49
Перенести макро из Word6 в современный  Word treiber Хочу все знать 1 09-06-2004 01:04




 
Переход