У меня есть рабочий лист с данными заголовка в первых нескольких строках, за которым следует таблица с заголовками столбцов. Данные заголовка включают параметры, которые используются для вычисления значений в таблице.Прокрутка, затем блокировка строки
Я хочу, чтобы пользователь мог прокручивать лист, чтобы данные заголовка больше не видны, а затем замораживают строку заголовка таблицы, когда она становится первой. Затем, если им нужно изменить параметр, они могут прокручивать назад, а верхние несколько строк возвращаются в поле зрения.
Я думал, что это довольно легко сделать, но я не помню, как это сделать. Единственный вариант, который я могу найти, это параметр «Замораживание панорамирования», но это замерзает все, и я только хочу, чтобы он замерзал, когда строка заголовка находится наверху.
Возможно ли это?
Отредактировано. Чтобы добавить немного больше пояснений, параметр замораживания окон заморозит все выше выбранной строки (если только я не пропустил ее), что не то, что я ищу. Я хочу, чтобы лист работал так же, как на веб-сайте, где наверху может быть рекламный баннер, а затем панель навигации/логотип/и т. Д., А затем содержимое. Когда вы прокручиваете вниз, рекламный баннер выходит из поля зрения, но когда панель навигации находится наверху, она останавливается и остается в поле зрения, пока контент продолжает прокручиваться.
Предположим, у меня есть первые 5 строк, у которых есть ячейки для захвата входных значений. Затем строка 6 является заголовком таблицы, а строки 7-100 являются данными таблицы. Я хочу, чтобы пользователь мог нажать кнопку прокрутки вниз 5 раз, чтобы перейти от входных значений. Затем я хочу, чтобы строка 6 замерзла вверху, так что, когда пользователь продолжает прокрутку, заголовок таблицы отображается. И наоборот, когда пользователь прокручивается вверх, строка 6 остается наверху, пока пользователь не дойдет до строки 7, а затем, если они продолжат прокрутку, входные значения перемещаются в режим просмотра.
Excel делает что-то подобное, если вы используете функцию «формат как таблица» и указываете, что выбор имеет строку заголовка. Затем при прокрутке заголовки столбцов заменят метки адресов «A», «B», «C» и т. Д. Это не будет работать напрямую для меня, потому что структура таблицы немного сложнее.
См. [Здесь] (http://stackoverflow.com/questions/3232920/how-can-i-programmatically-freeze-the-top-row-of-an-excel-worksheet-in-excel-200) , –
не уверен, почему вы добавили vba, а ответы также предлагают вариант vba. просто выберите строку/colum (один или оба), а затем параметры freeze panes – davejal
Спасибо Скотту, но из того, что я могу сказать, этот поток обеспечивает решение для замораживания строки, но не динамически. Я обновил сообщение с дополнительной информацией, и в этом примере я хочу, чтобы строка 6 зависала, когда она является верхней строкой листа. Я все еще новичок в VBA, и я полагаю, что могу написать чек, чтобы увидеть, является ли строка 6 первой строкой, а затем использовать код замораживания из другого потока, но это кажется неэффективным. – Brian