Всем привет. Помогите с макросом пожалуйста......я не спец, но очень надо, поэтому прошу помощи. Надо чтобы нажатием на одну и туже кнопку открывались и скрывались определенные строки.......Как это сделать?
Всем привет. Помогите с макросом пожалуйста......я не спец, но очень надо, поэтому прошу помощи. Надо чтобы нажатием на одну и туже кнопку открывались и скрывались определенные строки.......Как это сделать?Meissen
KSV, Ну да, я вообще о функции ".EntireRow.Hidden" пока не знал...) Подскажите, пожалуйста, а в чем конкретно оптимизация то получилась, ато по мне так одинаково выглядит (у _Boroda_, даже покороче вышло, всего в 1 строчку))) То что не пришлось 2 раза писать: [vba]
Код
Rows("6:14").EntireRow.Hidden
[/vba] ?
KSV, Ну да, я вообще о функции ".EntireRow.Hidden" пока не знал...) Подскажите, пожалуйста, а в чем конкретно оптимизация то получилась, ато по мне так одинаково выглядит (у _Boroda_, даже покороче вышло, всего в 1 строчку))) То что не пришлось 2 раза писать: [vba]
Длинна кода вовсе не показатель его эффективности. Бывает, что как раз наоборот. Но не всегда. Оптимизация в том, что мы один раз смотрим на скрытие строки 6 - скрыта она или нет. На самом деле, With - End With нужно и удобно использовать в том случае, когда у нас много операций, производимых с одним и тем же диапазоном (в Вашем случае), одной фигурой и т.д. (вариантов может быть много). Для больших объемов и/или для работы со многими показателями внутри With это может дать довольно существенную экономию. В Вашем же примере это не дает практически ничего, кроме, разве что, того, что Вы заинтересовались, спросили, получили ответ, почитали самостоятельно и, возможно, будете пользоваться этим дальше уже там, где это действительно необходимо. А иногда With не только полезно, но и просто удобно - можно вместо [vba]
With Sheets("Лист1") .Range("A1") = 1 .Range("A10") = 1 .Range("A100") = 1 End With
[/vba]
Длинна кода вовсе не показатель его эффективности. Бывает, что как раз наоборот. Но не всегда. Оптимизация в том, что мы один раз смотрим на скрытие строки 6 - скрыта она или нет. На самом деле, With - End With нужно и удобно использовать в том случае, когда у нас много операций, производимых с одним и тем же диапазоном (в Вашем случае), одной фигурой и т.д. (вариантов может быть много). Для больших объемов и/или для работы со многими показателями внутри With это может дать довольно существенную экономию. В Вашем же примере это не дает практически ничего, кроме, разве что, того, что Вы заинтересовались, спросили, получили ответ, почитали самостоятельно и, возможно, будете пользоваться этим дальше уже там, где это действительно необходимо. А иногда With не только полезно, но и просто удобно - можно вместо [vba]
Да, на мой взгляд, так более читабельно и в случае необходимости изменения диапазона, менять придется только в одном месте. По скорости, по-идее, прирост должен быть, т.к. не тратится время на получение ссылки на объект EntireRow второй раз (хотя, это тоже зависит от транслятора), но оно настолько мизерно, что им можно пренебречь... Основное, это то, что короткая запись .Hidden = Not .Hidden более читабельна. (опять же, это только мое мнение)
Hidden - это не функция, а свойство объекта EntireRow.
Да, на мой взгляд, так более читабельно и в случае необходимости изменения диапазона, менять придется только в одном месте. По скорости, по-идее, прирост должен быть, т.к. не тратится время на получение ссылки на объект EntireRow второй раз (хотя, это тоже зависит от транслятора), но оно настолько мизерно, что им можно пренебречь... Основное, это то, что короткая запись .Hidden = Not .Hidden более читабельна. (опять же, это только мое мнение)KSV