2015-05-14 10 views
5

Sto cercando di inserire una nuova riga sotto una riga di intestazione congelata nella parte superiore di un foglio di calcolo. Il problema che devo affrontare è che la quantità di righe nell'intestazione è in continua evoluzione, ma voglio sempre che la riga venga inserita nella prima riga sotto l'intestazione. C'è una bandiera nella riga che dice che è congelata? che potrei semplicemente contare la quantità di righe con detta bandiera, aggiungere 1 e inserire una riga. Qualsiasi aiuto sarebbe molto utile.VBA - Inserisci righe sotto un'intestazione dinamica

Matt

+0

Quando si dice _frozen_, si intende che si è utilizzato 'ActiveWindow.FreezePanes' (in VBA) o' View | Blocca riquadri | Freeze Panes' (dal nastro). O vuoi dire 'Split' dove hai più viste scorrevoli dello stesso foglio di calcolo nella stessa finestra? – FreeMan

+0

Intendo View | Blocca riquadri | Blocca riga superiore, dal nastro – themackyo

risposta

3

Qui siete!

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

Chiudi, ma probabilmente senza sigaro. L'OP ha richiesto _FreezePane_, che è diverso e può essere impostato indipendentemente da _Split_. Se parla davvero di _SplitPanes_ lo hai inchiodato, altrimenti non credo che si possa fare. – FreeMan

+0

Questo appena inserisce una riga nella parte superiore della pagina all'interno dell'intestazione e sposta tutto nell'intestazione verso il basso. Devo aggiungere una riga all'esterno dell'intestazione – themackyo

+0

Tutto ciò che ho fatto è stato andare a Visualizza> Riquadro blocco> Blocca la riga superiore in Excel e quindi le righe inserite sopra l'intestazione. Voglio solo usare VBA insieme ad altre cose, inserire una riga proprio sotto la riga "header" bloccata. Il fatto è che la quantità di righe nell'intestazione cambia sempre, ma voglio che la riga venga sempre inserita subito dopo l'intestazione. – themackyo

6

Se si utilizza FreezePanes allora penso che seguire questa strada:

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

Prima, la linea di congelamento è sotto la riga 5. riquadro Fermo è stato fatto sulla cella A6

before

Dopo il, viene aggiunta una riga di dividere a/b

after

Ecco una discussione rilevante che è venuto su Google per Blocca riquadri e VBA. http://www.mrexcel.com/forum/excel-questions/275645-identifying-freeze-panes-position-sheet-using-visual-basic-applications.html

+0

Eccellente! 'ActiveWindow.Panes (1) .VisibleRange.Rows.Count + 1' ti darà il numero di riga _below_ la' linea di congelamento'. – FreeMan

+0

La mia terminologia potrebbe essere errata, tutto ciò che fa è inserire una riga nell'intestazione e aumenta la quantità di righe contenute nell'intestazione di 1 – themackyo

+0

Quando eseguo quel codice sul mio lato, aggiunge la riga sotto la linea di blocco. Forse aggiungi una foto al tuo post in modo che possiamo vedere con cosa abbiamo a che fare? –

Problemi correlati