Количество цифр в ячейке и вывод списка значений с ошибкой

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Liska
Сообщения: 4
Зарегистрирован: 08 окт 2005, 18:42

Привет
У меня такой вопрос. Нужно написать макрос в Excel. Есть лист с полями Имя, Номер и Количество. Номер должен быть ровно 15 цифр, а Количество равняться 1, если хоть одно условие не выполняется, то это ошибка. Так вот, как мне сделать поиск этих ошибочных записей и вывести все данные о них в виде нового листа, где также есть поля Имя, Номер, Количество?
Заранее спасибо.
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Liska, А зачем Вам макрос … выберите любой столбец, не содержащий данных и введите нижеопубликованную формулу. Затем скопируйте эту формулу в нужные ячейки. В результате Вы получите столбец содержащий логические значения ЛОЖЬ, ИСТИНА

=ИЛИ(ДЛСТР(B2)>15;ДЛСТР(C2)>1)

Если введённая формула возвратит значение ИСТИНА, то Вам предстоит исправлять допущенные ошибки.
Если существует вероятность, что столбцах Номер и Количество могут наличествовать не только числовые значения, но например текст, то формулу нужно усложнить, например :

=ИЛИ(ЕТЕКСТ(B2)+ЕТЕКСТ(C2);(ДЛСТР(B2)>15)+ДЛСТР(C2)>1)

Совет : Если воспользоваться проверкой вводимых данных (меню Данные - команда Проверка), то данные не удовлетворящие заданным условиям можно выделить, если в меню Сервис выбрать пункт Зависимости и команду Панель зависимости. Затем достаточно нажать кнопку Обвести неверные данные.
Liska
Сообщения: 4
Зарегистрирован: 08 окт 2005, 18:42

Да дело в том, что записей там не 10 и даже не 100, их сотни тысяч и проверять каждую запись просто невозможно по причине огромных затрат времени. Я в макросе выделяла все нужные мне ячейки программно и потом делаю в цикле пробег по ячейкам с проверкой на 15 и 1, Номера и Количества соответственно, но возникает проблема, что когда компилирую, пробега по всем ячейкам нет (( А все ячейки проверять функцией ДЛСТР я заколебаюсь....
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Во первых я не предлагал проверять каждую ячейку по отдельности.
Во вторых, любую формулу можно ввести сразу во все нужные ячейки, а затем просто отфильтровать столбец, выбрав в качестве критерия ИСТИНА.
В третьих, если внимательно прочитать мой предыдущий пост, то процесс поиска ячеек, содержащих "неправильные" данные можно значительно ускорить.
Liska
Сообщения: 4
Зарегистрирован: 08 окт 2005, 18:42

Ага, ясно
Все мои недочеты приняты. Спасибо, что разъяснили. У меня это первый опыт работы с VBA, поэтому еще не все ясно.
Liska
Сообщения: 4
Зарегистрирован: 08 окт 2005, 18:42

Забыла сказать, что все действительно работает как надо.
Ответить