VBA-tabellen en ListObjects

Deze zelfstudie laat zien hoe u met tabellen en ListObjects in VBA kunt werken.

VBA-tabellen en ListObjects

Tabellen zijn een van de handigste en krachtigste functies van Excel. In deze zelfstudie bespreken we hoe u VBA kunt gebruiken om een ​​tabel te maken, een eenvoudige sortering aan een tabel toe te voegen, een tabel te filteren en andere tabelgerelateerde taken uit te voeren.

Maak een tabel met VBA

De ListObjects.Add-methode kan een tabel aan een werkblad toevoegen op basis van een bereik in dat werkblad. We hebben het bereik weergegeven in ($A$1:$B$8) op een werkblad met de naam Blad1.

De volgende code voegt een tabel met de naam Table1 toe aan uw werkblad, gebaseerd op het bereik ($A$1:$B$8) met behulp van de standaard tabelstijl:

123456 Sub CreateTableInExcel()ActiveWorkbook.Sheets("Blad1").ListObjects.Add(xlSrcRange, Range("$A$1:$B$8"), , xlYes).Naam = _"Tafel 1"Einde sub

Het resultaat is:

Een kolom aan het einde van de tabel invoegen met VBA

U kunt de methode ListColumns.Add gebruiken om een ​​kolom aan het einde van uw tabel toe te voegen. We hebben onze tabel genaamd Table1 hieronder weergegeven.

U kunt een kolom aan uw tabel toevoegen met behulp van de volgende code, die altijd een kolom aan het einde van de tabel zal toevoegen:

12345 Sub AddColumnToTheEndOfTheTable()ActiveWorkbook.Sheets("Blad1").ListObjects("Tabel1").ListColumns.ToevoegenEinde sub

Het resultaat is:

Een rij onderaan de tabel invoegen met VBA

U kunt de methode ListRows.Add gebruiken om een ​​rij onder aan uw tabel toe te voegen. We hebben onze tabel genaamd Table1 hieronder weergegeven.

De volgende code voegt altijd een rij toe aan de onderkant van uw tabel.

12345 Sub AddRowToTheBottomOfTheTable()ActiveSheet.ListObjects ("Tabel1").ListRows.ToevoegenEinde sub

Het resultaat is:

Een eenvoudige sortering toevoegen met VBA

U kunt een tabel sorteren met VBA. We hebben onze tabel met de naam Tabel1 hieronder weergegeven en we kunnen VBA gebruiken om de verkoopkolom van laag naar hoog te sorteren.

De volgende code sorteert de kolom Verkoop in oplopende volgorde.

12345678910111213141516171819 Sub SimpleSortOnTheTable()Bereik ("Tabel1[[#Headers],[Sales]]").SelecteerActiveWorkbook.Worksheets("Blad1").ListObjects("Tabel1").Sort.SortFields.ClearActiveWorkbook.Worksheets("Blad1").ListObjects("Tabel1").Sorteren.SorterenVelden.Toevoegen _Sleutel:=Bereik("Tabel1[[#Alle],[Verkoop]]"), SortOn:=xlSortOnValues, Order:= _xlAscending, DataOption:=xlSortNormalMet ActiveWorkbook.Worksheets("Blad1").ListObjects("Tabel1").Sorteren.Kop = xlJa.MatchCase = False.Oriëntatie = xlTopToBottom.SortMethode = xlPinYin.Van toepassing zijnEindigt metEinde sub

Het resultaat is:

Een tabel filteren met VBA

U kunt een Excel-tabel ook filteren met VBA. We hebben onze tabel met de naam Tabel1 en we willen de tabel filteren zodat alleen verkopen van meer dan 1500 worden weergegeven.

We kunnen de Autofilter-methode gebruiken, die vijf optionele parameters heeft. Omdat we de Sales-kolom, de tweede kolom, willen filteren, stellen we het veld in op 2 en gebruiken we de xlAnd-operatorparameter, die wordt gebruikt voor datums en getallen.

123456 Sub EenvoudigFilter()ActiveWorkbook.Sheets("Blad1").ListObjects("Tabel1").Bereik.AutoFilter Veld:=2, Criteria1:= _">1500", Operator:=xlAndEinde sub

Het resultaat is:

Wis het filter met de ShowAllData-methode in VBA

U hebt toegang tot de ShowAllData-methode van de Worksheet-klasse om het filter te wissen. Als u de filter(s) van een tabel wilt wissen, moet u eerst een cel in de tabel selecteren, wat u in VBA kunt doen.

De ShowAllData-methode zal een fout genereren als men geen voorwaardelijke logica gebruikt om te controleren of er een filter is toegepast in het werkblad. De volgende code laat zien hoe je dit doet:

123456789 Sub ClearingTheFilter()Bereik ("Tabel1[[#Headers],[Sales]]").SelecteerIf ActiveWorkbook.Worksheets("Blad1").FilterMode = True DanActiveSheet.ShowAllDataStop alsEinde sub

Wis alle filters uit een Excel-tabel

U hebt toegang tot de ShowAllData-methode van de klasse ListObject zonder dat u eerst een cel in de tabel hoeft te selecteren. De volgende code laat zien hoe je dit doet:

123 Sub ClearAllTableFilters()ActiveWorkbook.Worksheets("Blad1").ListObjects("Tabel1").AutoFilter.ShowAllDataEinde sub

Een rij verwijderen met VBA

U kunt een rij in de databody van uw tabel verwijderen met behulp van de ListRows.Delete-methode. U moet opgeven welke rij met behulp van het rijnummer. We hebben de volgende tabel genaamd Table1.

Stel dat u de tweede rij in de databody van uw tabel wilt verwijderen, met de volgende code kunt u dit doen:

12345 Sub VerwijderArow()ActiveWorkbook.Worksheets("Blad1").ListObjects("Tabel1").ListRows(2).VerwijderenEinde sub

Het resultaat is:

Een kolom verwijderen met VBA

U kunt een kolom uit uw tabel verwijderen met de methode ListColumns.Delete. We hebben de volgende tabel genaamd Tabel1 die hieronder wordt weergegeven:

Om de eerste kolom te verwijderen, gebruikt u de volgende code:

12345 Sub VerwijderAcolumn()ActiveWorkbook.Worksheets("Blad1").ListObjects("Tabel1").ListColumns(1).VerwijderenEinde sub

Het resultaat is:

Een tabel terug converteren naar een bereik in VBA

U kunt een tabel terug converteren naar een normaal bereik met behulp van VBA. De volgende code laat zien hoe u een tabel met de naam Table1 terug naar een bereik converteert:

12345 Sub converterenATableBackToANormalRange()ActiveWorkbook.Sheets("Blad1").ListObjects("Tabel1").UnlistEinde sub

Gestreepte kolommen en opmaak toevoegen aan alle tabellen in een werkblad met VBA

U hebt toegang tot alle tabellen in uw werkblad met behulp van de ListObjects-verzameling. In het onderstaande blad hebben we twee tabellen en we willen graag een gestreepte kolom aan beide tabellen tegelijk toevoegen en het lettertype van de gegevenssectie van beide tabellen wijzigen in vet, met behulp van VBA.

12345678910111213 Sub toevoegenBandedColumns()Dim tbl As ListObjectDim sht als werkbladStel sht = ThisWorkbook.ActiveSheet inVoor elke tbl In sht.ListObjectstbl.ShowTableStyleColumnStripes = Truetbl.DataBodyRange.Font.Bold = Truevolgende tblEinde sub

Het resultaat is:

Een tabel maken in Access in VBA met DoCmd.RunSQL

Een van de belangrijkste manieren om een ​​tabel in Access in VBA te maken, is door de DoCmd.RunSQL-methode te gebruiken om een ​​actiequery uit te voeren met een SQL-instructie.

We hebben een knop op ons voorbeeldformulier en wanneer we op de knop klikken, willen we een tabel maken met de naam ProductsTable met twee velden of kolommen, het ene is het primaire sleutelveld met de naam ProductsID en het andere is een veld met de naam Sales.

Om deze tabel te maken zouden we de volgende code gebruiken:

123456 Privé sub cmdCreateProductsTable_Click()DoCmd.RunSQL "CREATE TABLE ProductsTable" _& "(Primaire sleutel ProductID INTEGER, Integer Sales);"Einde sub

Het resultaat is:

Een tabel filteren in Access met VBA

U kunt een tabel in Access ook filteren met de methode DoCmd.ApplyFilter. We hebben onze eenvoudige tabel hieronder weergegeven in Access, genaamd ProductsTable.

We willen graag op deze knop op ons formulier drukken en dan alleen verkopen zien die groter zijn dan 1500.

We zouden dus de volgende code gebruiken om dit te doen:

1234567 Privé sub cmdFilter_Click()DoCmd.OpenTable "ProductenTabel"DoCmd.ApplyFilter , "[Verkoop]>1500"Einde sub

Het resultaat is:

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave