Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

Программирование в Excele. Как скрыть строки?   Найти похожие ветки 

 
Cheater ©   (2005-06-11 12:54) [0]

Есть столбец. Неважно какой. Допустим А. В этой столбце либо есть определенные данные, либо нет. Иными словами, ячейки могут быть пустыми или с определенным текстом. Вопрос вот в чем! Нужно чтобы после нажатия на кнопку был проверен столбик, к примеру, А. Если в нем есть какой-то текст (т.е ячейка не пустая), то строку трогать не надо, а если нет никого текста, то строка должна исчезнуть. Именно исчезнуть, а не удалиться. Иными словами, код должен проверить ячейки A1,A2,A3... Если например, А1 - пустая, то строку 1 надо спрятать, а если не пустая, то соответственно с ней ничего делать не надо, а следует перейти к следующей ячейки А2 и.т.д.

Затем нажав на вторую кнопку все должно вернуться на место/ Т.е в одном случае надо сделать hide определенных строк, а в другом случае unhide всего  . Понимаю, что объяснение несколько кривое, но как смог. Сам в Visual Basic не разбираюсь, но сделал здоровый экселевский файл, который делает кучу расчетов, проверок и.т.д. и сейчас для того чтобы полностью закончить проект необходимо решить обозначенную проблему. Большая просьба указать исходник целиком, чтобы просто потом вставить в обработку событий кнопки.


 
TUser ©   (2005-06-11 13:02) [1]

Примерно так

Sub Hide (Column as integer)
 dim R as range
 R:=selection  

 c=0: i=1: last = -1
 while c < 100
   if cells(i,Column) <> "" then
     if c <> 0 then
       Rows (format(last+1)+":"+format(i-1)).Select
       Selection.entirerows.hide = true
     endif
     c=0: last = i;
   else
     c=c+1
   endif
   i=i+1
 wend

 R.select
end sub

sub Show;
 dim R as range
 R:=selection  

 cells.select
 selection.entirerows.hide = false
 R.select
end sub


PS. Сервис -> Макросы -> Начать запись + минимальные знания Бейсика.


 
TUser ©   (2005-06-11 13:05) [2]

Кстати, можно и без VBA обойтись - отфильтровать пустые строки и сделать им hide.


 
Cheater ©   (2005-06-11 13:32) [3]

Чего-то не работает.

> Кстати, можно и без VBA обойтись - отфильтровать пустые
> строки и сделать им hide.

В ручную, конечно, можно, но ведь задача именно программно отфильтровать и сделать hide.


 
TUser ©   (2005-06-11 14:27) [4]

Конечно не работает - никто ж это дело не тестил :) Вот тебе рабочий вариант.

Sub Hide(Column As Integer)
c = 0: i = 1: last = -1
While c < 100
  If Cells(i, Column) <> "" Then
    If c <> 0 Then
      Rows(Format(last + 1) + ":" + Format(i - 1)).Select
      Selection.EntireRow.Hidden = True
    End If
    c = 0: last = i
  Else
    c = c + 1
  End If
  i = i + 1
Wend

Range("A1").Select
End Sub

Sub Show()
Cells.Select
Selection.EntireRow.Hidden = False

Range("A1").Select
End Sub

Sub HideA()
 Call Hide(1)
End Sub



Страницы: 1 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.036 c
3-1117386935
parasolka
2005-05-29 21:15
2005.07.11
Работа с DBGrid


14-1118266840
Германн
2005-06-09 01:40
2005.07.11
Установка и удаление программ


1-1118908486
<Lelik>
2005-06-16 11:54
2005.07.11
Про Count


3-1117024028
evg00
2005-05-25 16:27
2005.07.11
последняя запись


14-1118383272
АлексейК
2005-06-10 10:01
2005.07.11
Гордость и гордыня одно и тоже?