Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Макрос - скрыть определенный диапазон строк относительно номера активной ячейки
 
Добрый день!

FYI - в VBA я полный нуб.
Задача следующая:
Имеется таблица. Содержит в себе информацию по некоторому количеству событий по N строк на каждое событие вида

Событие1 Показатель1 Value1
Событие1 Показатель2 Value2
...
Событие1 ПоказательN ValueN
Событие2 Показатель1 Value1
Событие2 Показатель2 Value2
...

Необходимо проверить значение ValueX соответствующего показателя ПоказательX каждого события, и если значение удовлетворяет условию, удалить (или скрыть - не принципиально) все строки по данному событию.

Тривиальная задача. Не для меня  :)  
Мой ламерский вариант имеет следующий вид:

For n1 = 1 To NumRows
If Cells(n1, 2).Value = occ Then
If Cells(n1, 3).Value = tval Then
Rows("?:?" )  .Hidden = True
End If
End If
Next


Уперся я в то, что не знаю как правильно указать диапазон строк, которые необходимо скрыть.
Кто-нибудь что-нибудь посоветует?
Качественно другие способы решения задачи также приветствуются.
Изменено: yarill - 9 Авг 2013 21:35:25
 
Запишите макрорекордером скрытие какого-нибудь диапазона строк - вот Вам и готовый макрос))
 
Это да, но не совсем то, что нужно.

Сложность у меня возникла именно с заданием диапазона относительно переменной. То есть, например, в строке с номером n выполнены необходимые условия. Нужно удалить строку n, а также все строки под номерами, скажем, начиная с n-3 и по n+4.
Я понимаю, что дико туплю, но не знаю, как указать эти самые n-3 и n+4 в Rows(" : " ) .Hidden = True
 
Так попробуйте

Код
a = n - 3 & ":" & n + 4
Rows(a).Hidden = true
Изменено: Olelucoye - 9 Авг 2013 22:03:50
 
Проще.
Код
Rows(n).Offset(-3).Resize(7).Delete
ну или:
Код
.Hidden = true
Изменено: KuklP - 9 Авг 2013 22:19:57
Я сам - дурнее всякого примера! ...
 
Olelucoye, KuklP, спасибо большое. Именно то, что нужно.
 
[USER=35435]Olelucoye,[/USER]спасибо! То, что нужно.<#0>
Страницы: 1
Читают тему (гостей: 1)