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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2013, 11:51   #1
Paramount
Пользователь
 
Регистрация: 14.12.2011
Сообщений: 31
По умолчанию Удалить строки всех недопустимых значений

Доброго времени суток, дорогие друзья!

Прошу помощи. Ситуация: функция ВПР возвращает либо нормальное значение (если параметр найден) либо недопустимое (если параметр отсутствует (#Н/Д). После выполнения функции ВПР необходимо удалить все СТРОКИ с такими значениями в столбце, скажем Е. Т.е. в рендж Е2:Е50000 вписывается ВПР. Часть из результатов Н/Д. Используем автофильтр (оставляя только Н/Д) и все строки удаляем. Внимание, вопрос: почему, коогда я выполняю эти действия записывая макрос, он в дальнейшем не работает. Точнее фильтр стоит (галочка только возле Н/Д), но значения не отображаются вообще. Пробовал заменить формулу на значения и потом фильтровать (т.к. в макросе прописывается критерий = "#Н/Д") - всё равно не выходит.
Скорее всего эту задачу можно решить и другим способом, я, например, фантазировал насчёт If RXC5="#Н/Д", where X = 2:50000, then Rows("X:X").Delete Shift:=xlUp (Это, конечно, бред, больше похож на математическое уравнение, но объяснил как мог)
Возможно Вам будет что-то не понятно, так что простите меня, некомпетентного
Заранее спасибо всем за ответы!

Последний раз редактировалось Paramount; 23.01.2013 в 11:56.
Paramount вне форума Ответить с цитированием
Старый 23.01.2013, 12:25   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Код:
Cells.SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Delete Shift:=xlUp
вот такой код удаляет все строки, содержащие ошибочные значения (#Н/Д, #ЗНАЧ, #ССЫЛКА и т.п.)
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 23.01.2013, 12:40   #3
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

А точно надо удалять строки? Может к ВПР добавить проверку на ошибки, типа:
Код:
ЕСЛИ(ЕОШИБКА(ВПР("ваша формула";0;ВПР("ваша формула")))
Тогда в ячейке вместо значения ошибки будет 0. Ноль можно заменить на "пусто" (" ").
strannick вне форума Ответить с цитированием
Старый 23.01.2013, 12:41   #4
Paramount
Пользователь
 
Регистрация: 14.12.2011
Сообщений: 31
По умолчанию

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
Код:
Cells.SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Delete Shift:=xlUp
вот такой код удаляет все строки, содержащие ошибочные значения (#Н/Д, #ЗНАЧ, #ССЫЛКА и т.п.)
Супер, но проблемка в том, что удаляя целую строку - удаляет и критерии, что коцает формулу и получается каша
Paramount вне форума Ответить с цитированием
Старый 23.01.2013, 12:59   #5
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
Сообщение от Paramount Посмотреть сообщение
Супер, но проблемка в том, что удаляя целую строку - удаляет и критерии, что коцает формулу и получается каша
попробуйте убрать
Код:
.EntireRow
из формулы. Или выкладывайте образец файла с исходными данными и что желаете получить в итоге.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 23.01.2013, 13:30   #6
Paramount
Пользователь
 
Регистрация: 14.12.2011
Сообщений: 31
По умолчанию

Вот так всё выглядит
Вложения
Тип файла: rar Тест_ВБА.rar (8.9 Кб, 7 просмотров)
Paramount вне форума Ответить с цитированием
Старый 23.01.2013, 14:46   #7
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

вот вроде как получилось. но сохранить формулы в столбце по условиям вашей задачи нереально
Вложения
Тип файла: zip Тест_ВБА.zip (12.5 Кб, 14 просмотров)
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 23.01.2013, 15:32   #8
Paramount
Пользователь
 
Регистрация: 14.12.2011
Сообщений: 31
По умолчанию

Цитата:
вот вроде как получилось. но сохранить формулы в столбце по условиям вашей задачи нереально
а их и не нужно сохранять, спасибо большое, то, что надо!!!

Тема закрыта
Paramount вне форума Ответить с цитированием
Старый 23.01.2013, 15:32   #9
Paramount
Пользователь
 
Регистрация: 14.12.2011
Сообщений: 31
По умолчанию

Цитата:
вот вроде как получилось. но сохранить формулы в столбце по условиям вашей задачи нереально
а их и не нужно сохранять, спасибо большое, то, что надо!!!

Тема закрыта
Paramount вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перебор всех доступных значений! AquaKlaster Общие вопросы Delphi 40 02.03.2015 12:27
Получение всех значений из CheckBox ilgar-90 ASP.NET 1 13.11.2012 19:26
Защита о недопустимых данных VENOMIK Паскаль, Turbo Pascal, PascalABC.NET 5 14.12.2011 20:52
Удалить столбец со всех листов. contrelesgaz Microsoft Office Excel 5 29.04.2011 00:22
Вывод всех значений.. ZveRN JavaScript, Ajax 0 06.11.2010 12:26