2015-05-14 17 views
5

Ich möchte eine neue Zeile unterhalb einer eingefrorenen Kopfzeile am Anfang einer Tabelle einfügen. Das Problem, dem ich gegenüberstehe, ist die Anzahl der Zeilen in der Kopfzeile, die sich ständig ändert, aber ich möchte immer, dass die Zeile in der ersten Zeile unterhalb der Kopfzeile eingefügt wird. Gibt es eine Flagge in der Reihe, die besagt, dass sie eingefroren ist? Ich könnte einfach die Anzahl der Zeilen mit dem Flag zählen, 1 hinzufügen und Zeile einfügen. Jede Hilfe wäre sehr hilfreich.VBA - Zeilen unterhalb eines dynamischen Headers einfügen

Matt

+0

Wenn Sie _frozen_ sagen, meinen Sie, dass Sie 'ActiveWindow.FreezePanes' (in VBA) oder' View | verwendet haben Scheiben einfrieren | Scheiben einfrieren (aus dem Band). Oder meinen Sie "Split", wo Sie mehrere scrollbare Ansichten derselben Tabelle im selben Fenster haben? – FreeMan

+0

Ich meine Ansicht | Scheiben einfrieren | Freeze obere Reihe, aus dem Band – themackyo

Antwort

3

Hier sind Sie!

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

Schließen, aber möglicherweise keine Zigarre. Das OP fragte nach _.FreezePane_, das anders ist und unabhängig von _Split_ gesetzt werden kann. Wenn er wirklich über _SplitPanes_ spricht, hast du es geschafft, wenn nicht, ich denke nicht, dass es getan werden kann. – FreeMan

+0

Das fügt nur eine Zeile am Anfang der Seite innerhalb der Kopfzeile ein und verschiebt alles in der Kopfzeile nach unten. Ich muss eine Zeile außerhalb der Kopfzeile hinzufügen – themackyo

+0

Alles, was ich tat, war auf Ansicht> Freeze-Bereich> Freeze oberste Zeile in Excel und dann Zeilen oben auf diesem Header eingefügt. Ich möchte nur VBA verwenden, um zusammen mit anderen Dingen eine Zeile direkt unter der "header" eingefroren Zeile einzufügen. Die Sache ist die Menge der Zeilen in der Kopfzeile ändert sich immer, aber ich möchte die Zeile immer nach der Kopfzeile eingefügt werden. – themackyo

6

Wenn Sie FreezePanes verwenden dann denke ich, Sie diesen Weg gehen:

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

Vor, die Gefrier Zeile unterhalb Scheibe Zeile 5. Freeze wurde auf Zelle getan A6

before

Nach, eine Zeile hinzugefügt

after

Hier a/b zu teilen ist eine relevante Diskussion, die für Fenster fixieren und VBA auf Google kam. http://www.mrexcel.com/forum/excel-questions/275645-identifying-freeze-panes-position-sheet-using-visual-basic-applications.html

+0

Ausgezeichnet! 'ActiveWindow.Panes (1) .VisibleRange.Rows.Count + 1' gibt Ihnen die Zeilennummer _below_ die' freeze line'. – FreeMan

+0

Meine Terminologie ist möglicherweise falsch, all dies tut fügt eine Zeile in der Kopfzeile und erhöht die Anzahl der Zeilen in der Kopfzeile von 1 – themackyo

+0

Wenn ich diesen Code an meinem Ende ausführen, fügt es die Zeile unterhalb der Freeze-Zeile. Vielleicht fügen Sie Ihrem Beitrag ein Bild hinzu, damit wir sehen können, womit wir es zu tun haben. –