2015-05-14 4 views
5

Я ищу, чтобы вставить новую строку под замерзшей строкой заголовка в верхней части таблицы. Проблема, с которой я сталкиваюсь, заключается в том, что количество строк в заголовке постоянно меняется, но я всегда хочу, чтобы строка была вставлена ​​в первую строку под заголовком. Есть ли флаг в строке, который говорит, что он заморожен? который я мог бы просто подсчитать количество строк с указанным флагом, добавить 1 и вставить строку. Любая помощь будет очень полезной.VBA - Вставьте строки под динамическим заголовком

Мэтт

+0

Когда вы говорите _frozen_, вы имеете в виду, что вы использовали 'ActiveWindow.FreezePanes' (в VBA) или' View | Замороженные панели | Стоп-кадр (с ленты). Или вы имеете в виду 'Split', где у вас есть несколько прокручиваемых представлений одной и той же таблицы в одном окне? – FreeMan

+0

Я имею ввиду View | Замороженные панели | Верхний ряд замораживания, От ленты – themackyo

ответ

3

Здесь вы находитесь!

Sub InsertRowBelowHeader() 
    Rows(ActiveWindow.SplitRow + 1).Insert 
End Sub 
+0

Рядом, но, возможно, нет сигары. ОП задал вопрос о _.FreezePane_, который отличается и может быть установлен независимо от _Split_. Если он действительно говорит о _SplitPanes_, вы прибиваете его, если нет, я не думаю, что это можно сделать. – FreeMan

+0

Это просто вставляет строку в верхней части страницы внутри заголовка и сдвигает все в заголовке вниз. Мне нужно добавить строку за пределами заголовка – themackyo

+0

Все, что я сделал, это перейти в меню «Просмотр»> «Стоп-кадр»> Завершить верхнюю строку в excel, а затем вставить строки поверх этого заголовка. Я просто хочу использовать VBA, чтобы вместе с другими вещами вставлять строку прямо под замороженной строкой заголовка. Дело в том, что количество строк в заголовке всегда меняется, но я хочу, чтобы строка всегда вставлялась сразу после заголовка. – themackyo

6

Если вы используете FreezePanes, то я думаю, что вы идете по этому пути:

Sub InsertRowBelowHeader() 
    Rows(ActiveWindow.Panes(1).VisibleRange.Rows.Count + 1).Insert 
End Sub 

Перед, заморозка линия находится ниже строки 5. Зафиксированные панели было сделано в ячейке A6

before

После, строка добавляется для разделения A/B

after

Вот соответствующее обсуждение, которое было на Google для акрепляйте и VBA. http://www.mrexcel.com/forum/excel-questions/275645-identifying-freeze-panes-position-sheet-using-visual-basic-applications.html

+0

Отлично! 'ActiveWindow.Panes (1) .VisibleRange.Rows.Count + 1' даст вам номер строки _below_' freeze line'. – FreeMan

+0

Моя терминология может быть неправильной, все это делает, вставляет строку в заголовок и увеличивает количество строк, содержащихся в заголовке, на 1 – themackyo

+0

Когда я запускаю этот код на моем конце, он добавляет строку ниже строки замораживания. Может быть, добавьте фотографию на свой пост, чтобы мы могли видеть, с чем имеем дело? –

Смежные вопросы