Форум: "Потрепаться";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];
ВнизПрограммирование в 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.049 c