Pøeskoèit navigaci | Pøeskoèit na novinky
     

Jste zde: Úvodní stránka » excel » vba-listy-bunky » Tabulka-jako-tabulka-VBA-Excel
Microsoft Excel logo

Tabulka jako tabulka VBA Excel

Videokurzy Excel

Ve spoluprci se SEDUO jsem vytvoil nkolik videokurz:

Jak pracovat s tabulkou jako tabulka vyuitm VBA v Excel

vodem

V tomto lnku se podvme na prci s tabulkou jako tabulka vyuitm VBA. Pro pehlednost je lnek rozdlen na kapitoly:


Vybrat oblasti SELECT

Pedpokldm, e mte k dispozici tabulku jako tabulka pod nzvem TabJakNaExcel. Aneb a mi inspirtoi (koprovai) dlaj reklamu. ;)

Cel tabulka

ListObjects("TabJakNaExcel").Range.Select

Sloupec jen data v dan tabulce a danm sloupci:

ListObjects("TabJakNaExcel").ListColumns(4).DataBodyRange.Select

Sloupec jen data v dan tabulce a danm sloupci bez vyuit ListObjects

Range("TabJakNaExcel[Id]").Select

Cel sloupec 2

ListObjects("TabJakNaExcel").ListColumns(2).Range.Select ActiveSheet.ListObjects("TabJakNaExcel").ListColumns(2).Range.Select

Jedna buka

ListObjects("TabJakNaExcel").DataBodyRange(3, 2).Select ListObjects("TabJakNaExcel").ListColumns(2).Range(2).Select ListObjects("TabJakNaExcel").ListRows(4).Range(1).Select

dek

ListObjects("TabJakNaExcel").ListRows(4).Range.Select

Cel soutov dek

ListObjects("TabJakNaExcel").TotalsRowRange.Select

tvrt sloupce v soutovm dku

ListObjects("TabJakNaExcel").TotalsRowRange(4).Select

Oznaen celho zhlav

ListObjects("TabJakNaExcel").HeaderRowRange.Select

Jedna poloka zhlav

ListObjects("TabJakNaExcel").HeaderRowRange(3).Select Tabulka jako tabulka - Microsoft Excel VBA

Vytvoit tabulku jako tabulka

Vytvoen tabulky je mon nkolik zpsoby:

  • oznam oblasti
  • oznam buku a vyut CurrentRegion

Praktick ukzky

' 1 ListObjects.Add(xlSrcRange, Range("A1:D10"), , xlYes).Name = "TabulkaPavel" '2 ListObjects.Add(SourceType:=xlSrcRange, Source:=Range("A1:C4"), _ xlListObjectHasHeaders:=xlYes ).Name = "TabulkaJakNaExcel" '3 ListObjects.Add(SourceType:=xlSrcRange, Source:=Range("A1").CurrentRegion, _ xlListObjectHasHeaders:=xlYes ).Name = "TabulkaJakNaExce_2" '4 ActiveSheet.ListObjects.Add(SourceType:=xlSrcRange, Source:=Selection.CurrentRegion, _ xlListObjectHasHeaders:=xlYes ).Name = "TabulkaJakNaExcel_3"

Tipy

hlavika

xlListObjectHasHeaders:=xlYes xlListObjectHasHeaders:=xlNo

Pedpokldm, e data v oznaen oblasti maj zhlav, a jmno kter se tabulce jako tabulka piazuje neexistuje.

pravy tabulky jako tabulka

prava tabulka

Rozsah

ListObjects("TabJakNaExcel_4").Resize Range("$F$3:$I$15")

dky / Sloupce

Pidn sloupce

ListObjects("TabJakNaExcel_4").ListColumns.Add ' na pozici ListObjects("TabJakNaExcel_4").ListColumns.Add Position:=2 ' rovnou pidat jmno pidavanmu sloupci ListObjects("TabJakNaExcel_4").ListColumns.Add.Name = "aaa"

Pidn dky

ListObjects("TabJakNaExcel_4").ListRows.Add ' dek na uritou pozici ListObjects("TabJakNaExcel_4").ListRows.Add Position:=1

Smazn sloupce

ListObjects("TabJakNaExcel_4").ListColumns(2).Delete ' Info ' Mae se jen v tabulce !!

Smazn dky

ListObjects("TabJakNaExcel_4").ListRows(2).Delete ListObjects("TabJakNaExcel_4").Range.Rows("4:6").Delete

Design tabuky

Grafika

Z ped pipravench schmat:

ListObjects("TabulkaJakNaExcel_5").TableStyle = "TableStyleMedium1"

Tip

  • TableStyleLight21
  • TableStyleDark10

Nastaven defaultnho designu pro tvorbu tabulek

ActiveWorkbook.DefaultTableStyle = "TableStyleMedium5"

pravy sloupc - prvn

ListObjects("TabulkaJakNaExcel_5").ShowTableStyleFirstColumn = True ListObjects("TabulkaJakNaExcel_5").ShowTableStyleFirstColumn = False

pravy sloupc - posledn

ListObjects("TabulkaJakNaExcel_5").ShowTableStyleLastColumn = True ListObjects("TabulkaJakNaExcel_5").ShowTableStyleLastColumn = False

pravy sloupc - pruhovn

ListObjects("TabulkaJakNaExcel_5").ShowTableStyleColumnStripes = True ListObjects("TabulkaJakNaExcel_5").ShowTableStyleColumnStripes = False

pravy dky - pruhovn

ListObjects("TabulkaJakNaExcel_5").ShowTableStyleRowStripes = True ListObjects("TabulkaJakNaExcel_5").ShowTableStyleRowStripes = False

Zhlav tabulky - zobrazit / skrt

ListObjects("TabulkaJakNaExcel_5").ShowHeaders = True ListObjects("TabulkaJakNaExcel_5").ShowHeaders = False

Zhlav tabulky - filtrovn

ListObjects("TabulkaJakNaExcel_5").ShowAutoFilterDropDown = False ListObjects("TabulkaJakNaExcel_5").ShowAutoFilterDropDown = True

Zobrazit soutov sloupec

ListObjects("TabulkaJakNaExcel_5").ShowTotals = True ListObjects("TabulkaJakNaExcel_5").ShowTotals = False

azen

Zruit azen

ListObjects("JakNaExcel_7").Sort.SortFields.Clear

Nastaven azen podle konkretnho sloupce:

ListObjects("JakNaExcel_7").Sort.SortFields.Add Key:=Range("JakNaExcel_7[id]"), SortOn:=xlSortOnValues, Order:=xlDescending

pehlednji

ListObjects("JakNaExcel_7").Sort.SortFields.Add _ Key:=Range("JakNaExcel_7[id]"), _ SortOn:=xlSortOnValues, _ Order:=xlDescending

Tip

  • Order:=xlDescending
  • Order:=xlAscending

Vetn deklarace

Dim ws As Worksheet Set ws = ActiveSheet Dim tbl As ListObject Set tbl = ws.ListObjects("JakNaExcel_7") Dim sortcolumn As Range Set sortcolumn = Range("JakNaExcel_7[id]") With tbl.Sort .SortFields.Clear .SortFields.Add Key:=sortcolumn, SortOn:=xlSortOnValues, Order:=xlDescending .Header = xlYes .Apply End With

Tip

  • podle barev
  • podle ikonek

Filtrovn

Zruit filtr

ListObjects("JakNaExcel_9").Range.AutoFilter

Jedno kriterium

ListObjects("JakNaExcel_9").Range.AutoFilter Field:=1, Criteria1:="2"

Dv kriteria

ListObjects("JakNaExcel_9").Range.AutoFilter Field:=1, _ Criteria1:="=2", Operator:=xlOr, Criteria2:="=5"

Vce tip na filtrovn je v pprav:

Vpoty

Vpoty - velikost tabulky jako tabulka

Msgbox ActiveSheet.ListObjects("T_JakNaExcel").ListRows.Count Msgbox ActiveSheet.ListObjects("T_JakNaExcel").ListColumns.Count

Pipravit souty

ListObjects("T_JakNaExcel").ShowTotals = True

Nastavit - Prmr

ListObjects("T_JakNaExcel").ListColumns("Vek").TotalsCalculation = xlTotalsCalculationAverage

xl - konstanty

  • xlTotalsCalculationNone
  • xlTotalsCalculationAverage
  • xlTotalsCalculationCount
  • xlTotalsCalculationCountNums
  • xlTotalsCalculationMax
  • xlTotalsCalculationMin
  • xlTotalsCalculationSum
  • xlTotalsCalculationStdDev
  • xlTotalsCalculationVar

Prce s daty v tabulce

Pest data

Hodnota = ListObjects("TabJakNaExcel").DataBodyRange(2, 4).Value MsgBox (Hodnota)

Upravit data * Vloit data

ListObjects("TabJakNaExcel").DataBodyRange(2, 4).Value = "Nova hodnota" ListObjects("JakNaExce_42").ListRows(4).Range(1).Value = 88883 ListObjects("JakNaExce_42").ListRows(4).Range(1) = 83473

Pepsat data v tabulce

S vyuitm deklarace promnnch a SETovnm

Dim ws As Worksheet Dim tbl As ListObject Set ws = ActiveSheet Set tbl = ws.ListObjects("JakNaExce_42") With tbl.ListRows(3) .Range(1) = "pokus 1" .Range(2) = "pokus 2" End With

Pidat dek a doplnit data

S vyuitm deklarace promnnch a SETovnm

Dim ws As Worksheet Dim tbl As ListObject Dim NovyRadek As ListRow Set ws = ActiveSheet Set tbl = ws.ListObjects("JakNaExce_42") Set NovyRadek = tbl.ListRows.Add With NovyRadek .Range(1) = "pokus 1" .Range(2) = "pokus 2" End With

Vce prav najednou

For Each Kdy chci napklad zmnit design vce tabulek jako tabulka:

' pro konkretn list Dim ws As Worksheet Dim tabulky As ListObject ' smyka pro vce tabulek For Each tabulky In ActiveSheet.ListObjects ' Poadovan pravy tabulky.TableStyle = "TableStyleMedium3" Next tabulky

Zmnit design vech tabulek v seit

Dim ws As Worksheet Dim tabulka As ListObject For Each ws In ActiveWorkbook.Worksheets For Each tabulka In ws.ListObjects ' Poadovan pravy tabulka.TableStyle = "TableStyleMedium3" Next tbl Next ws ' vce v prpav

Ostatn

Ostatn.

Ostatn

Existuje tabulka

Dim tbl As ListObject With Worksheets("Data") For Each tbl In .ListObjects If tbl.Name = "JakNaExcel" Then MsgBox ("Existuje") Exit For End If Next tbl End With

Pes funkci, inspirovno na stackoverflow:

'https://stackoverflow.com/questions/38097134/vba-excel-check-if-a-particular-table-exist-using-table-name Sub callTableExists() MsgBox tableExists("Table1", "Shapes") End Sub Function TableExists(tableName As String, sheetName As String) As Boolean Dim targetSheet As Worksheet Set targetSheet = Worksheets(sheetName) Dim tbl As ListObject With targetSheet For Each tbl In .ListObjects If tbl.Name = tableName Then TableExists = True Next tbl End With End Function

Doplnm, v ppad, e na nco zajmavho narazm.

Souvisejc lnky

Souvisejc lnky:


Microsoft Excel VBA - stahuj logo

Ke staen

Soubor ke staen zdarma je v pprav.


Zvrem

Mte zajmav tip na prci s prci s tabulkou jako tabulka vyuitm VBA kdu v Excel. Mete vyut komente.

Èlánek byl aktualizován: 19.09.2020 11:06

Odmìna

Ušetøil vám tento web èas, peníze? Pomohl vyøešit problém? Jste ochotni poskytnout symbolickou odmìnu na další rozvoj? Vybrte si formu odmìny, která vám vyhovuje.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se vìnuji od roku 2000 (od 2004 na této doménì) - V roce 2017 jsem od Microsoft získal prestižní ocenìní MVP (zatím jsem jediný z ÈR v kategorií Excel). Své vìdomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, uèím na MUNI. Tento web již tvoøím pøes 15 let. Zdarma je zde pøes 1.000 návodu, tipù a trikù, vèetnì pøes 250 rùzných šablon, sešitù.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil

" ; echo "google_adtest=\"on\"; " ; echo "" ; echo "TEST REKLAMNIHO SYSTEMU" ; } else { echo "" ; } ?>

Komente zatm nejsou

Mete bt prvnmi co zanechaj smyslupln koment.



" ; echo "google_adtest=\"on\"; " ; echo "" ; echo "TEST REKLAMNIHO SYSTEMU" ; } else { echo "" ; } ?>



Sdlejte

Pomohl Vm nvod?
Sdlejte na Facebooku, G+
LinkedIn...

Nov lnky


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

Strnky o MS Office (Excel) produktu spolenosti Microsoft. Neslou jako technick podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lask 2004 - 2020 |