В Excel нет встроенных функций, которые бы позволяли вам это делать. Вам нужно будет написать макрос и назначить его кнопочному элементу управления (который можно перетащить на рабочий лист с помощью панели инструментов «Панель инструментов управления» - «Просмотр»> «Панели инструментов»> «Панель инструментов управления»).
Обычно вы назначаете макрос этой кнопке, дважды щелкнув по кнопке (пока она все еще находится в режиме конструктора) и вызвав ваш макрос во вновь сгенерированном событии `CommandButton_Click`. Как говорит Ланс, с именованными диапазонами будет проще всего работать.
Чтобы ответить на последнюю часть вашего вопроса, программное копирование диапазона также не копирует форматирование или формулу. Требуется только значение ячейки. Таким образом, независимо от того, является ли ваш исходный диапазон скрытым, целевому объекту не нужно явно указывать свое свойство `visible` - скрытый атрибут игнорируется при копировании.