|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » макро удалит из Excel строку |
|
макро удалит из Excel строку
|
Рыжая Сообщения: 1550 |
Профиль | Сайт | Отправить PM | Цитировать нужна помощь с macro в Excel.
надо чтобы макро удаляло строки (целые row) из Excel файла, где встречаются заданые слова (при чем они могут встрачатся меж другими словами) в любой из колонок строки. |
|
------- Отправлено: 17:49, 29-09-2005 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить 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 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старый параноик Сообщения: 2423
|
Профиль | Отправить 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 |
Рыжая Сообщения: 1550
|
Профиль | Сайт | Отправить PM | Цитировать hasherfrog
хм... как-то не очень на VB похоже... а если у меня несколько слов с которыми нужно удалять строки? мне нужна array. |
------- Отправлено: 02:04, 01-10-2005 | #4 |
Старожил Сообщения: 401
|
Профиль | Отправить PM | Цитировать hasherfrog
Я бы вставил еще строчку Не могу въехать почему Rows.Count прямо в цикле использовать нельзя? Ginger Самый простой тупой и медленный вариант - принимать strTarget$ в данной процедуре параметром. Соответственно вызывать эту процедуру для каждого элемента вашего массива. |
|
------- Отправлено: 10:04, 03-10-2005 | #5 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать >> мне нужна array.
А как Вы его задаёте? Мне тут не совсем понятно, можно его внутри макроса определить, или его пользователь как-то вводит в окошечках, или ещё как? aESThete >> Не могу въехать почему Rows.Count прямо в цикле использовать нельзя? Э-э-э... Я уже не знаю, может, это у меня артефакт какой-то остался?... |
Отправлено: 12:46, 06-10-2005 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Доступ - [решено] Как удалит пасс с сетки? | 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 |
|