#vba #edit #hidden #rows #autofilter
#vba #Редактировать #скрытые #строки #автофильтр
Вопрос:
Макрос скрывает строки. После того, как строки скрыты, пользователи могут копировать, редактировать и удалять блоки ячеек / строк. Когда пользователи выбирают диапазон, содержащий скрытые ячейки, скрытые ячейки, к сожалению, также выбираются, поэтому все действия выполняются и для скрытых ячеек.
Можно ли скрыть строки таким образом, чтобы они не участвовали в действиях, выполняемых на видимой части листа (ведут себя как скрытые строки после автофильтра)?
Чтобы скрыть строки, я использую этот код:
Rows(i).EntireRow.Hidden = True
Ответ №1:
Об этом я не знаю. Вероятно, вам нужно будет подумать о защите рабочего листа и блокировке ячеек, которые вы не хотите изменять / копировать.
Комментарии:
1. Спасибо, Реафиди. Я думаю, что это должно быть возможно без защиты рабочего листа, автофильтр каким-то образом это делает, и рабочий лист, похоже, не защищен. Я надеюсь, что есть какой-то способ изменить свойства скрытых строк, чтобы они перестали участвовать в действиях, выполняемых в визуальной части рабочего листа.
2. Возможно, но это, вероятно, будет хакерским. У вас есть причина, по которой вы хотите избежать защиты листа? Что определяет, какие строки вы скрываете, и можете ли вы использовать автофильтр вместо скрытия строк?
3. В принципе, я хочу воспроизвести функциональность автофильтра. Встроенный автофильтр позволяет фильтровать только по двум значениям в пользовательских фильтрах. Я хочу создать расширение, в котором пользователи могут выполнять, создавать, редактировать и хранить сложные динамические фильтры. Что касается защиты листа — я должен попробовать, но, на мой первый взгляд, это не поможет сделать скрытые строки «недоступными для копирования».
4. Я думаю, что они будут «недоступны для копирования», так как как вы будете копировать строки, если вы не можете их выбрать?