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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.08.2009, 23:58   #1
Screame
Форумчанин
 
Аватар для Screame
 
Регистрация: 27.05.2009
Сообщений: 170
Вопрос ошибка при фильтрации

При нажатии кнопки "скрыть" должны скрываться все пустые строки, но почемуто одна строка под номером 4 не скрывается, как можно с этим справится? В примере все станет понятно!
Вложения
Тип файла: zip Книга2.zip (32.7 Кб, 12 просмотров)
Screame вне форума Ответить с цитированием
Старый 13.08.2009, 01:13   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Потому что фильтр оставляет уникальные строки, а пустая - тоже уникальная. Можно сделать так (после применения фильтра идет проверка на пустоту ячейки в колонке Артикул и скрывается найденная пустая строка):

Код:
Sub Макрос1()
    Range("B1:J1066").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
    Range("A1").Select
    
    lastrow = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
    For i = 2 To lastrow
    If (Cells(i, 2) = "") Then
    Rows(i).Select
    Selection.EntireRow.Hidden = True
    GoTo LAB
    End If
    Next i
LAB:
    
End Sub
motorway вне форума Ответить с цитированием
Старый 13.08.2009, 06:26   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно чуть проще:
Код:
Sub Макрос1()
    Application.ScreenUpdating = False: On Error Resume Next
    [B1:J1066].AdvancedFilter Action:=xlFilterInPlace, Unique:=True
    Intersect(ActiveSheet.UsedRange, [B:B].SpecialCells(xlCellTypeBlanks)).EntireRow.Hidden = True
End Sub
Пример во вложении.
Вложения
Тип файла: rar Книга3.rar (14.1 Кб, 14 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.08.2009, 10:37   #4
Screame
Форумчанин
 
Аватар для Screame
 
Регистрация: 27.05.2009
Сообщений: 170
По умолчанию

скажите есть какой нибудь способ после того как скрыты пустые строки, скопировать оставшиеся для вставки на другой лист? только скопировать уже без пустых строк!
Screame вне форума Ответить с цитированием
Старый 13.08.2009, 10:48   #5
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Код:
ActiveSheet.UsedRange.Cells.SpecialCells(xlVisible).Copy
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 13.08.2009, 10:53   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Если этот вопрос связан с предыдущим, то метод .AdvancedFilter позволяет сразу поместить отфильтрованные данные в нужный лист в нужный диапазон.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.08.2009, 12:34   #7
Screame
Форумчанин
 
Аватар для Screame
 
Регистрация: 27.05.2009
Сообщений: 170
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Если этот вопрос связан с предыдущим
Да это относится именно к этой таблице, после того как убраны ненужные строки она должна скопироватся и вставится на лист "залишок"! пожалуйста если можно поподробней об AdvancedFilter, если можно напишите как ей воспользоваться?
Screame вне форума Ответить с цитированием
Старый 13.08.2009, 13:35   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите пример во вложении. Нажмите кнопку "Старт".
Вложения
Тип файла: rar Книга4.rar (18.6 Кб, 15 просмотров)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 13.08.2009 в 13:52.
SAS888 вне форума Ответить с цитированием
Старый 13.08.2009, 22:44   #9
Screame
Форумчанин
 
Аватар для Screame
 
Регистрация: 27.05.2009
Сообщений: 170
По умолчанию

попробовал пример из "книга4.xls" если я в эту книгу сбрасываю свои данные появляется таже проблема, строчка 2 и строчка 4 никуда не убираются, попробуйте файл из моего вложения нажмите на кнопку "старт" и сами все увидите, быть может все таки есть возможность както с ними справится?
Вложения
Тип файла: zip Книга44.zip (25.6 Кб, 8 просмотров)
Screame вне форума Ответить с цитированием
Старый 13.08.2009, 23:40   #10
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

А почему 4-ая должна убираться?
motorway вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Excel ослеп или я "в лыжи обутый"? (при фильтрации не видна часть таблицы) palabrador Microsoft Office Excel 21 19.05.2016 13:33
ОШИБКА ПРИ ЗАГРУЗКЕ Костян Пират Операционные системы общие вопросы 5 21.02.2009 12:14
Создание проги для фильтрации списка слов за разными критериями Makoto-kun Помощь студентам 1 10.01.2009 04:37
ошибка фильтрации Dozent Общие вопросы Delphi 5 25.06.2008 22:52
Ошибка при фильтрации! Markus БД в Delphi 0 05.05.2007 17:28