Počet řádků a sloupců ve VBA
Publikováno: 29.6.2017

Počet řádků a sloupců v listu sešitu a tabulce, formátování tabulky s využitím cyklu For ... Next a vlastnosti Interior.Color
- Rows.Count
- Columns.Count
- ColorIndex
Při programování aplikací ve VBA dříve nebo později narazíte na situaci, kdy potřebujete zjistit počet řádku a sloupců v listu, tabulce apod. Počet řádků využijete například jako horní mez v cyklu s pevným počtem opakování a počet sloupců například pro formátování tabulky.
Rows.Count a Columns.Count #1
První procedura sečte řádky a sloupce v listu Excelu a vypíše v dialogovém okně pomocí příkazu Msgbox.
Option Explicit
Sub Pocet()
deklarace proměnných
Dim pocet_radku As Long, pocet_sloupcu As Long
načtení hodnot do proměnných
pocet_radku = Rows.Count
pocet_sloupcu = Columns.Count
výpis hodnot
MsgBox "Počet řádků: " & pocet_radku & ", počet slouců: " & pocet_sloupcu
End Sub

Další procedura zjistí počet řádků v listu a zabarví každý lichý řádek žlutou barvou (6) pomocí vlastnosti Interior.ColorIndex.
Option Explicit
Sub Zabarvitradky()
deklarace proměnných
Dim pocet_radku, i As Long
načtení hodnot do proměnných
pocet_radku = Rows.Count
cyklus
for i = 2 to pocet_radku Step 2
rows(i).Interior.ColorIndex = 6
Next i
End Sub

Počítejte s tím, že exekuce procedury bude kvůli rozsahu chvilku trvat. Případně proměnnou pocet_radku v cyklu přepište na nějaké rozumné číslo (např. 100).
Rows.Count a Columns.Count #2
Následující proceduru využijime k získání počtu řádků a sloupců v tabulce. S tím nám pomůže metoda End, která zjistí počet vyplněných buněk (neprázdných buněk).
Nejdříve zjistíme počet vyplněných buněk (Rows.Count) ve sloupci A a poté se kurzor přesune zpět nahoru do výchozí pozice. Stejným způbosem zjistíme i počet sloupců. Zjištěné počty nakonec necháme vypsat v dialogovém okně Msgbox.
Option Explicit
Sub Pocet()
deklarace proměnných
Dim posledni_radek As Long, posledni_sloupec As Long
načtení hodnot do proměnných
posledni_radek = Cells(Rows.Count, "A").End(xlUp).Row
posledni_sloupec = Cells(1, Columns.Count).End(xlToLeft).Column
výpis hodnot
MsgBox "Poslední řádek: " & posledni_radek
MsgBox "Poslední sloupec: " & posledni_sloupec
End Sub
Rows.Count a Columns.Count #3
Další procedura zjistí počet vyplněných řádků, který bude limitovat počet opakování cyklu For ... Next. Pomocí logického větvení If ... Else ... End If otestuje, zda je v buňce číslo či nikoliv. Číslo obarví zelenou barvou.
Option Explicit
Sub Pocet()
deklarace proměnných
Dim i As Byte
Dim pocet_bunek As Byte
počet vyplněných buněk ve sloupci A
pocet_bunek = Cells(Rows.Count, "A").End(xlUp).Row
cyklus s pevným počtem opakování
For i = 1 To pocet_bunek
If IsNumeric(Cells(i, "A")) Then
With Cells(i, "A")
.Font.Color = RGB(0, 255, 0)
.Offset(, 1) = "je číslo"
End With
Else
Cells(i, "A").Offset(, 1) = "není číslo"
End If
Next i
End Sub

Rows.Count a Columns.Count #4
V poslední proceduře využijeme informace o velikosti tabulky k jejímu formátování. Každý sudý řádek tabulky necháme pomocí cyklu For ... Next i a vlastnosti Interior.Color zabarvit modrou barvou.
Option Explicit
Sub formatTabulky()
deklarace proměnných
Dim posledni_radek As Long
Dim posledni_sloupec As Long
Dim i As Long
načtení velikosti tabulky do proměnných
posledni_radek = Cells(Rows.Count, 1).End(xlUp).Row
posledni_sloupec = Cells(1, Columns.Count).End(xlToLeft).Column
cyklus zajistí zbarvení sudých řádků
For i = 3 To posledni_radek Step 2
With Cells(i, 1).Resize(, posledni_sloupec)
.Interior.Color = RGB(204, 234, 255)
End with
Next i
End Sub
Výsledek vykonané procedury je na následujícím obrázku
