Затем прокрутите строку блокировки

У меня есть рабочий лист с данными заголовка в первых нескольких строках, за которым следует таблица с заголовками столбцов. Данные заголовка включают параметры, которые используются для вычисления значений в таблице.

Я хочу, чтобы пользователь мог прокручивать лист, чтобы данные заголовка больше не были видны, а затем заморозили строку заголовка таблицы, когда она становится первой. Затем, если им нужно изменить параметр, они могут прокручивать назад, а верхние несколько строк возвращаются в поле зрения.

Я думал, что это довольно легко сделать, но я не могу вспомнить, как это сделать. Единственный вариант, который я могу найти, это параметр «Замораживание панорамирования», но это замерзает все, и я только хочу, чтобы он замерзал, когда строка заголовка находится наверху.

Возможно ли это?

Отредактировано. Чтобы добавить немного больше пояснений, параметр «замораживание окон» замораживает все выше выбранной строки (если только я не пропустил ее), и это не то, что я ищу. Я хочу, чтобы лист работал так же, как на веб-сайте, где наверху может быть рекламный баннер, а затем панель навигации / логотип / и т. Д., А затем содержимое. Когда вы прокручиваете вниз, рекламный баннер выходит из поля зрения, но когда панель навигации находится наверху, она останавливается и остается в поле зрения, пока контент продолжает прокручиваться.

Предположим, у меня есть первые 5 строк, у которых есть ячейки для захвата входных значений. Затем строка 6 является заголовком таблицы, а строки 7-100 являются данными таблицы. Я хочу, чтобы пользователь мог нажать кнопку прокрутки вниз 5 раз, чтобы перейти от входных значений. Затем я хочу, чтобы строка 6 замерзла вверху, так что, когда пользователь продолжает прокрутку, заголовок таблицы отображается. И наоборот, когда пользователь прокручивается вверх, строка 6 остается наверху, пока пользователь не дойдет до строки 7, а затем, если они продолжат прокрутку, входные значения перемещаются в режим просмотра.

Excel делает что-то подобное, если вы используете функцию «формат как таблица» и указываете, что выбор имеет строку заголовка. Затем при прокрутке заголовки столбцов заменят метки адресов «A», «B», «C» и т. Д. Это не будет работать напрямую для меня, потому что структура таблицы немного сложнее.

Насколько я понял, вы хотите сохранить видимые строки или столбцы, которые не являются первыми. Это своего рода экзотика.

Если вы хотите скрыть объекты конфигурации, чтобы сохранить визуальное пространство и сохранить заголовки в любое время:

Просто заморозите столько строк / столбцов, сколько необходимо для ваших конфигураций и заголовков. А затем СКРЫТЬ строки / столбцы, которые вы не хотите всегда видеть.

У вас может даже быть простая кнопка, которая скрывает и скрывает один клик:

Sub transaction1() Rows("10:50").Hidden = Not Rows("10:50").Hidden End Sub 

Что касается замороженных окон, на случай, если кто-то не знает, что вы можете заморозить столько, сколько хотите. Если вы хотите заморозить столбцы A и B, а строки 1 и 2 просто нажмите C3, а затем используйте функцию замораживания. Если вы хотите заморозить только 10 строк – щелкните по A11, а затем используйте замораживание.

Хотя я обычно просто разгружаю свое служебное пространство в другое место и быстро перехожу к нему с помощью = HYPERLINK ()

В любом случае ваш требуемый результат не будет более удобным, чем другие способы, с помощью которых вы можете добиться легкости навигации. Поэтому, если я прокрутил до строки 14000, если я хочу прокрутить назад до начала, чтобы просмотреть мои настройки, мне все равно придется проходить через строки 14k. Быстрое перемещение области сохранения, а также заголовков быстрее. И если ваша область настроек занимает столько места, переместите ее и создайте для нее более компактные навигационные системы или просто спрячьте / покажите ее по требованию.

Нет сомнений, что у вас могут быть еще более экзотические способы достижения эффекта, но обязательно ли это так?

Используйте это на кодовой странице рабочего листа (вкладка имени рабочего листа правой кнопки мыши, вид кода).

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim iVISROWS As Long Dim iHDRROWS As Long iVISROWS = 5 iHDRROWS = 3 Cells(1, 1).Resize(iHDRROWS, 1).EntireRow.Hidden = _ Target(Target.Rows.Count).Row > iVISROWS End Sub 

При желании выньте декларацию и назначение iVISROWS и iVISROWS и iHDRROWS в область объявления (вверху) лист кода модуля.

 Option Explicit Public Const iVISROWS As Long = 5 Public Const iHDRROWS As Long = 3 

Играйте с количеством строк заголовка (iHDRROWS) и нижней частью текущего выбора, который запускает скрытие строк заголовка (iVISROWS), пока вы не получите результаты, которые вы ищете.

У меня была такая же проблема, и у меня было гораздо меньше технических навыков, чтобы сделать все кодирование выше. Мое обходное решение очень простое. Вставьте новую строку справа вверху листа. Скопируйте заголовки таблицы в новую строку 1, а затем заморозите верхнюю строку как обычно. Когда вы прокручиваете верхний манекен, он остается выше вашего стола, а остальное исчезает. Ваши исходные заголовки по-прежнему остаются на месте для фильтрации при необходимости, если вы прокрутите вверх.

Interesting Posts

Laravel / Excel Parsing / RegExp не срабатывает

Excel: найдите числовые значения в порядке возрастания, в ячейках, которые имеют дублированные значения

Excel: как установить проверку данных списка для указания столбца в именованном диапазоне

Excel – итерация и подсчет групп, если менее 5 отчетов для менеджера

Excel работает в финансовом году

распознавание кодировок в Excel

как вставить список массивов в таблицу?

Как подключить кнопку ленты к функции, определенной в надстройке Excel?

Определить верхнюю и нижнюю границы списка значений

Vb.net – Поиск файла Excel для значений

Фильтрация таблицы Excel с датой в столбцах multipe

Как указать значения абсолютного / относительного рабочего листа / книги в Excel?

Как добавить значения в отдельные поля таблицы MS Excel с помощью VBA

Существуют ли какие-либо хорошие библиотеки методов расширения, отличные от других, от Microsoft, для Microsoft.Office.Interop.Excel?

Обозначение последней точки серии

Давайте будем гением компьютера.