Главная страница
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.091 c
14-1118309693
КаПиБаРа
2005-06-09 13:34
2005.07.11
Помогите решить практическую задачу


14-1118754638
_HawkEye
2005-06-14 17:10
2005.07.11
у кого нить есть полное описание модели COCOMO II


5-1089704943
doma
2004-07-13 11:49
2005.07.11
Сужение списка property в наследнике


3-1117222276
Starcom
2005-05-27 23:31
2005.07.11
Как вычис Кол-во лет имея дату занесения и тек в Paradox...


4-1116049971
cheloveck
2005-05-14 09:52
2005.07.11
Прервать выполнение потока (TThread)