Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Фильтр по столбцам в Excel


Автор: вит 2.3.2004, 14:16
Подскажите как отфильтровать в Excel данные по столбцам. Стандартный и Расширенные фильтры фильтруют только по строкам.
Как написать в VB.

Автор: shilnik 2.3.2004, 14:32
То есть тебе надо скрыть столбцы по к-либо критерию? Мне кажется, это можно сделать только программно. По идее разные столбцы содержат (могут содержать) данные разного типа, а как поставить фильтр на данные разного типа?

Автор: Unregistered 2.3.2004, 15:08
В таблице находятся только данные в числовом формате. А столбцы хотелось бы отфильтровать по значению в итоговой строке таблицы ( если итог не равен нулю). Просто данные в таблице меняются каждый день и остаются много неиспользованных столбцов которые на следующий день могут заполняться, и их нельзя удалить.

Автор: Staruha 2.3.2004, 21:46
А расширенный фильтр?

Автор: вит 3.3.2004, 09:16
Расширенный фильтр фильрует только строки (насколько я знаю), а мне нужно скрыть незаполненные столбцы в таблице (можно бы и в ручную но их много и в разноброс, причем через определённое время они могут заполнятся). Может кто подскажет как написать макрос.

Автор: shilnik 3.3.2004, 11:17
Код

For i = 1 To 10
   If Cells(1, i) = 0 Then                       'Если в первой стоке i-го солбца стоит 0
       Columns(i).EntireColumn.Hidden = True   'скрываем столбец
   Else
       Columns(i).EntireColumn.Hidden = False   'отображаем столбец
   End If
Next


В простом случае так.

Автор: hobotyara 3.3.2004, 11:47
Dim intNumPervStroki As Integer
Dim intNumPoslStroki As Integer
Dim intNumPervStolb As Integer
Dim intNumPoslStolb As Integer
Dim intNumStroki As Integer
Dim intNumStolb As Integer
Dim intDl As Integer

..........
For intNumStolb = intNumPervStolb To intNumPoslStolb
intDl = 0
For intNumStroki = intNumPervStroki To intNumPoslStroki
intDl = intDl + Len(Cells(intNumStroki, intNumStolb).Value)
Next intNumStroki
If intDl = 0 Then
Cells(intNumPervStroki, intNumStolb).EntireColumn.Hidden = True
End If
Next intNumStolb

Автор: вит 3.3.2004, 19:29
Исходник:

For i = 1 To 10
If Cells(1, i) = 0 Then
Columns(i).EntireColumn.Hidden = True
End If
Next

- пришлось немного подправить, а так всё работает!, б-О-Ольшое спасибо!

[/QUOTE]Лучший хелп для программиста - исходник.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)