Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Фильтр по несуществующему значению - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Фильтр по несуществующему значению
Alexei Дата: Среда, 10.07.2013, 21:57 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый вечер.
Вот есть такой примитивный макрос:
[vba]
Код
ActiveSheet.Range("$B$14:$N$300").AutoFilter field:=4, Criteria1:="Проверка"
Range("C15:N465").Select 'выделяем диапазон
Selection.Copy 'копировать
Sheets("Лист1").Select
Range("F11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
[/vba]
Но если в списке нет "Проверка", то фильтр не срабатывает и копирует весь неотфильтрованный диапазон.
Как добавить какую-нибудь проверку, что если такого значения нет в списке, то макрос пропускал эту свою часть и переходил к следующей части кода?
 
Ответить
СообщениеДобрый вечер.
Вот есть такой примитивный макрос:
[vba]
Код
ActiveSheet.Range("$B$14:$N$300").AutoFilter field:=4, Criteria1:="Проверка"
Range("C15:N465").Select 'выделяем диапазон
Selection.Copy 'копировать
Sheets("Лист1").Select
Range("F11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
[/vba]
Но если в списке нет "Проверка", то фильтр не срабатывает и копирует весь неотфильтрованный диапазон.
Как добавить какую-нибудь проверку, что если такого значения нет в списке, то макрос пропускал эту свою часть и переходил к следующей части кода?

Автор - Alexei
Дата добавления - 10.07.2013 в 21:57
Poltava Дата: Среда, 10.07.2013, 22:50 | Сообщение № 2
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

Вопрос без файла считаеться теоретическим! вот Вам теоретический ответ! перед тем как копировать проверьте что данный критерий есть пока на вскидку два способа нет файла так что синтаксис не проверял но скорее всего он неправильный
[vba]
Код
ActiveSheet.Range("$B$14:$N$300").AutoFilter field:=4, Criteria1:="Проверка"
if ActiveSheet.AutoFilter.Range.row.count<>ActiveSheet.AutoFilter.Range.Row.SpecialCells(xlCellTypeVisible).Count then
Range("C15:N465").Select 'выделяем диапазон
Selection.Copy 'копировать
Sheets("Лист1").Select
Range("F11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
end if
[/vba]
либо просто проверить наличие функцией листа но раз вам лень выложить файл то мне лень тут код писать сами напишите smile главное идея


Сообщение отредактировал Poltava - Среда, 10.07.2013, 22:51
 
Ответить
СообщениеВопрос без файла считаеться теоретическим! вот Вам теоретический ответ! перед тем как копировать проверьте что данный критерий есть пока на вскидку два способа нет файла так что синтаксис не проверял но скорее всего он неправильный
[vba]
Код
ActiveSheet.Range("$B$14:$N$300").AutoFilter field:=4, Criteria1:="Проверка"
if ActiveSheet.AutoFilter.Range.row.count<>ActiveSheet.AutoFilter.Range.Row.SpecialCells(xlCellTypeVisible).Count then
Range("C15:N465").Select 'выделяем диапазон
Selection.Copy 'копировать
Sheets("Лист1").Select
Range("F11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
end if
[/vba]
либо просто проверить наличие функцией листа но раз вам лень выложить файл то мне лень тут код писать сами напишите smile главное идея

Автор - Poltava
Дата добавления - 10.07.2013 в 22:50
Hugo Дата: Среда, 10.07.2013, 23:10 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3703
Репутация: 792 ±
Замечаний: 0% ±

365
Ещё можно сперва через find поискать.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеЕщё можно сперва через find поискать.

Автор - Hugo
Дата добавления - 10.07.2013 в 23:10
Poltava Дата: Четверг, 11.07.2013, 00:04 | Сообщение № 4
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

Да такой метод тоже имеет право на жизнь, а я как то и позабыл о нем
 
Ответить
СообщениеДа такой метод тоже имеет право на жизнь, а я как то и позабыл о нем

Автор - Poltava
Дата добавления - 11.07.2013 в 00:04
Alexei Дата: Четверг, 11.07.2013, 08:40 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Вот такой пример.
К сообщению приложен файл: 4760940.xls (83.0 Kb)
 
Ответить
СообщениеВот такой пример.

Автор - Alexei
Дата добавления - 11.07.2013 в 08:40
Poltava Дата: Четверг, 11.07.2013, 13:00 | Сообщение № 6
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

К примеру так, поубивал мусор макроредактора и вынес копирование в отдельную процедуру
К сообщению приложен файл: Post65498489.xlsm (54.5 Kb)
 
Ответить
СообщениеК примеру так, поубивал мусор макроредактора и вынес копирование в отдельную процедуру

Автор - Poltava
Дата добавления - 11.07.2013 в 13:00
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!