Tämä opetusohjelma osoittaa, miten voit käyttää taulukoita ja ListObjects -kohteita VBA: ssa.
VBA -taulukot ja ListObjects
Taulukot ovat yksi Excelin hyödyllisimmistä ja tehokkaimmista ominaisuuksista, tässä opetusohjelmassa käymme läpi, miten VBA: ta käytetään taulukon luomiseen, yksinkertaisen lajittelun lisäämiseen taulukkoon, taulukon suodattamiseen ja muiden taulukkoon liittyvien tehtävien suorittamiseen.
Luo taulukko VBA: n avulla
ListObjects.Add -menetelmä voi lisätä taulukon laskentataulukkoon kyseisen laskentataulukon alueen perusteella. Meillä on alue ($ A $ 1: $ B $ 8) taulukossa Sheet1.
Seuraava koodi lisää taulukkoon taulukon 1 taulukkoon laskentataulukkoosi alueen ($ A $ 1: $ B $ 8) perusteella käyttämällä oletustaulukkotyyliä:
123456 | Sub CreateTableInExcel ()ActiveWorkbook.Sheets ("Sheet1"). ListObjects.Add (xlSrcRange, Range ("$ A $ 1: $ B $ 8"),, xlYes) .Nimi = _"Pöytä 1"End Sub |
Tulos on:
Sarakkeen lisääminen taulukon loppuun VBA: n avulla
Voit käyttää ListColumns.Add -menetelmää lisätäksesi sarakkeen taulukon loppuun. Meillä on taulukko nimeltä Table1 alla.
Voit lisätä sarakkeen taulukkoon käyttämällä seuraavaa koodia, joka lisää aina sarakkeen taulukon loppuun:
12345 | Sub AddColumnToTheEndOfTheTable ()ActiveWorkbook.Sheets ("Sheet1"). ListObjects ("Table1"). ListColumns.AddEnd Sub |
Tulos on:
Rivin lisääminen taulukon alaosaan VBA: n avulla
ListRows.Add -menetelmän avulla voit lisätä rivin taulukon alareunaan. Meillä on taulukko nimeltä Table1 alla.
Seuraava koodi lisää aina rivin taulukon alaosaan.
12345 | Sub AddRowToTheBottomOfTheTable ()ActiveSheet.ListObjects ("Table1"). ListRows.AddEnd Sub |
Tulos on:
Yksinkertaisen lajittelun lisääminen VBA: n avulla
Voit lajitella taulukon VBA: n avulla. Meillä on taulukko nimeltä Table1 alla ja voimme käyttää VBA: ta myyntisarakkeen lajitteluun alimmasta korkeimpaan.
Seuraava koodi lajittelee Myynti -sarakkeen nousevassa järjestyksessä.
12345678910111213141516171819 | YksinkertainenSortOnTheTable ()Alue ("Taulukko1 [[#Otsikot], [Myynti]]"). ValitseActiveWorkbook.Worksheets ("Sheet1"). ListObjects ("Table1"). Sort.SortFields.ClearActiveWorkbook.Worksheets ("Sheet1"). ListObjects ("Table1"). Sort.SortFields.Add _Avain: = Alue ("Taulukko1 [[#Kaikki], [Myynti]]"), Lajittelu: = xlSortOnValues, Järjestys: = _xlAscending, DataOption: = xlSortNormalActiveWorkbook.Worksheets ("Sheet1"). ListObjects ("Table1"). LajitteleOtsikko = xlKyllä.MatchCase = False.Orientation = xlTopToBottom.SortMethod = xlPinYin.KäytäLopetaEnd Sub |
Tulos on:
Suodata taulukko VBA: n avulla
Voit myös suodattaa Excel -taulukon VBA: n avulla. Meillä on taulukko nimeltä Table1 ja haluamme suodattaa taulukon niin, että näytetään vain yli 1500 myynti.
Voimme käyttää Autofilter -menetelmää, jossa on viisi valinnaista parametria. Koska haluamme suodattaa Myynti -sarakkeen, joka on toinen sarake, asetamme kenttään 2 ja käytämme xlAnd -operaattoriparametria, jota käytetään päivämäärissä ja numeroissa.
123456 | Yksinkertainen suodatin ()ActiveWorkbook.Sheets ("Sheet1"). ListObjects ("Table1"). Range.AutoFilter Field: = 2, Criteria1: = _"> 1500", operaattori: = xlAndEnd Sub |
Tulos on:
Tyhjennä suodatin ShowAllData -menetelmällä VBA: ssa
Voit avata laskentataulukon ShowAllData -menetelmän suodattimen tyhjentämiseksi. Jos haluat tyhjentää taulukon suodattimen, sinun on ensin valittava taulukosta solu, jonka voit tehdä VBA: ssa.
ShowAllData -menetelmä luo virheen, jos ehdollista logiikkaa ei käytetä tarkistamaan, onko laskentataulukossa käytetty suodatinta. Seuraava koodi näyttää, miten tämä tehdään:
123456789 | Osan tyhjennysTheFilter ()Alue ("Taulukko1 [[#Otsikot], [Myynti]]"). ValitseJos ActiveWorkbook.Worksheets ("Sheet1"). FilterMode = True thenActiveSheet.ShowAllDataLoppu JosEnd Sub |
Tyhjennä kaikki suodattimet Excel -taulukosta
Voit käyttää ListObject -luokan ShowAllData -menetelmää ilman, että sinun on ensin valittava solu taulukosta. Seuraava koodi näyttää, miten tämä tehdään:
123 | Sub ClearAllTableFilters ()ActiveWorkbook.Worksheets ("Sheet1"). ListObjects ("Table1"). AutoFilter.ShowAllDataEnd Sub |
Rivin poistaminen VBA: n avulla
Voit poistaa rivin taulukon tietokannasta käyttämällä ListRows.Delete -menetelmää. Sinun on määritettävä rivi rivinumeron avulla. Meillä on seuraava taulukko nimeltä Taulukko 1.
Oletetaan, että halusit poistaa taulukon tietokannan toisen rivin, seuraavan koodin avulla voit tehdä tämän:
12345 | Ala Poista ARow ()ActiveWorkbook.Worksheets ("Sheet1"). ListObjects ("Table1"). ListRows (2) .DeleteEnd Sub |
Tulos on:
Sarakkeen poistaminen VBA: n avulla
Voit poistaa sarakkeen taulukosta käyttämällä ListColumns.Delete -menetelmää. Meillä on seuraava taulukko nimeltä Table1 alla:
Voit poistaa ensimmäisen sarakkeen käyttämällä seuraavaa koodia:
12345 | Sub DeleteAColumn ()ActiveWorkbook.Worksheets ("Sheet1"). ListObjects ("Table1"). ListColumns (1) .DeleteEnd Sub |
Tulos on:
Taulukon muuntaminen takaisin alueelle VBA: ssa
Voit muuntaa taulukon takaisin normaalialueelle VBA: n avulla. Seuraava koodi näyttää, kuinka taulukko Taulukko1 voidaan muuntaa takaisin alueeksi:
12345 | Sub ConvertingATableBackToANormalRange ()ActiveWorkbook.Sheets ("Sheet1"). ListObjects ("Table1"). UnlistEnd Sub |
Kaistaleiden sarakkeiden lisääminen ja muotoilu kaikkiin laskentataulukon taulukoihin VBA: n avulla
Voit käyttää kaikkia laskentataulukon taulukoita ListObjects -kokoelman avulla. Alla olevassa taulukossa on kaksi taulukkoa, ja haluamme lisätä banded -sarakkeen molempiin taulukoihin kerralla ja muuttaa molempien taulukoiden tieto -osan fontin lihavoituksi käyttämällä VBA: ta.
12345678910111213 | Sub AddingBandedColumns ()Dim tbl ListObjectinaDim sht kuten laskentataulukkoAseta sht = ThisWorkbook.ActiveSheetJokaiselle tbl: lle Sht.ListObjectstbl.ShowTableStyleColumnStripes = Tottatbl.DataBodyRange.Font.Bold = TottaSeuraava tblEnd Sub |
Tulos on:
Taulukon luominen Accessiin VBA: ssa DoCmd.RunSQL: n avulla
Yksi tärkeimmistä tavoista luoda taulukko Accessissa VBA: ssa on käyttää DoCmd.RunSQL -menetelmää toiminnon kyselyn suorittamiseen SQL -lauseella.
Esimerkkilomakkeessamme on painike, ja kun napsautamme painiketta, haluamme luoda taulukon nimeltä ProductsTable, jossa on kaksi kenttää tai saraketta, toinen olisi ensisijainen avainkenttä, jonka nimi on ProductsID, ja toinen kenttä nimeltä Sales.
Tämän taulukon luomiseksi käytämme seuraavaa koodia:
123456 | Yksityinen ali cmdCreateProductsTable_Click ()DoCmd.RunSQL "CREATE TABLE ProductsTable" _& "(ProductID INTEGER PRIMARY KEY, Sales Integer);"End Sub |
Tulos on:
Taulukon suodattaminen Accessissa VBA: n avulla
Voit myös suodattaa taulukon Accessissa DoCmd.ApplyFilter -menetelmällä. Meillä on yksinkertainen taulukko, joka näkyy alla Accessissa nimeltä ProductsTable.
Haluamme painaa tätä painiketta lomakkeessamme ja nähdä sitten vain myynti, joka on yli 1500.
Käytämme siis seuraavaa koodia tähän:
1234567 | Yksityinen ali cmdFilter_Click ()DoCmd.OpenTable "ProductsTable"DoCmd.ApplyFilter, "[Myynti]> 1500"End Sub |
Tulos on: