Indholdsfortegnelse
I denne artikel vil vi illustrere, hvordan du kan indsæt data til en Excel tabel ved hjælp af VBA kode Ved hjælp af Excels indbyggede egenskaber og metoder kan vi let tilføje eller overskrive data i en tabel. Lad os dykke ned i eksemplerne for at få en klar forståelse af metoderne sammen med VBA-koderne.
Download arbejdsbog til øvelser
Download denne arbejdsbog til træning, så du kan øve dig, mens du læser denne artikel.
Indsæt data i tabel.xlsm4 eksempler på at indsætte data i en tabel ved hjælp af VBA i Excel
Lad os sige, at vi har en salgsliste for en butik med detaljer som ordredato, produktnavn, mængde, enhedspris og samlet pris.
Sådan oprettes en tabel i Excel
Til drej datasæt til en Excel-tabellen , gør følgende-
- Vælg hele datasættet .
- Gå til til den Indsæt fanen fra den Excel-bånd .
- Klik på på den Tabel mulighed.
- Endelig skal du klikke på OK-knappen i den Opret tabel-vinduet.
- Vi har med succes konverteret datasæt til en Excel-tabellen .
For at indsætte data i en Excel-tabelle bruger vi flere VBA-funktioner og egenskaber i vores kode I det følgende afsnit beskrives, hvordan du åben og skrive kode i den visual basic editor.
Skriv kode i Visual Basic Editor
Følg den trin til åben visual basic editor og skrive noget kode der.
- Gå til Udvikler fra fanen Excel-bånd .
- Klik på Visual Basic-indstilling.
- I den Visual Basic for Applications vindue, skal du klikke på Indsæt dropdown til Vælg Nyt modul
Nu, hvor en nyt modul er åbnet , skriv noget kode der, og tryk på F5 til køre.
1. Indsæt data i den sidste række i en tabel ved hjælp af VBA i Excel
I dette eksempel bruger vi en VBA kode til tilføj a ny række på den bund af den tabel og derefter indsæt data I vores tabel har vi 4 rækker på data . for at tilføje den 5. , kopi og indsætte følgende kode i Visual Basic-editoren.
Sub InsertDataIntoTable() Dim tableName As ListObject Set tableName = ActiveSheet.ListObjects("Table1") Dim addedRow As ListRow Set addedRow = tableName.ListRows.Add() With addedRow .Range(1) = "1/1/2022" .Range(2) = "Apple" .Range(3) = 5 .Range(4) = 1.77 End With End Sub
Tryk på F5 til køre kode.
Vi har indsat a ny række på data på den bund af den eksisterende tabel .
Kodeforklaring:
- I vores kode har vi brugt ListObjects-objekt af VBA Excel til gribe tabel med sin navn For yderligere oplysninger, hver af den ListObject objekter er en tabel på den arbejdsark . for at få tabellens navn, klik på den tabel >> klik på den fanen Borddesign i den Excel-bånd.
- Derefter brugte vi den ListRows . Tilføj metode for at tilføje en ny række i den tabel . dette metode tager to argumenter : Position og AltidInsæt .
Ved at indtaste en heltal tal , kan vi angive relativ position af den nyligt tilføjet række i den tabel . I dette eksempel er vi efterladt tomt argument om position , som følge heraf, en ny række har været tilføjet på den bund af den tabel .
- Endelig sætter vi data i hver af den celler af den nyligt tilføjet række . I dette tilfælde var dataene .Range(1) = "1/1/2022" som OrderDate, .Range(2) = "Apple" som Produkt, .Range(3) = 5 som Antal, .Range(4) = 1,77 som Pris pr. enhed.
Læs mere: Excel-tabellenavn: Alt, hvad du behøver at vide
2. Kør en VBA-kode for at indsætte data i en bestemt række i en tabel i Excel
I denne illustration vil vi tilføje en række data på et en bestemt række i forhold til tabellen ved hjælp af det samme stykke kode, som vi brugte i ovenstående eksempel. I dette tilfælde skal vi blot angiv Argument for position af den ListRows.Add-metoden i vores kode. Lad os sige, at vi ønsker at tilføje salgsdata til Orange med oplysninger i række nummer 3 relativ til den eksisterende tabel . for at dette kan ske, kopi og indsætte følgende kode i den visuelle kodeeditor.
Sub InsertDataIntoTable() Dim tableName As ListObject Set tableName = ActiveSheet.ListObjects("Table1") Dim addedRow As ListRow Set addedRow = tableName.ListRows.Add(3) With addedRow .Range(1) = "1/1/2022" .Range(2) = "Orange" .Range(3) = 3 .Range(4) = 2.14 End With End Sub
Kørsel af koden ved ved at trykke på F5 indsættes salgsdata for Orange i den 3. række i forhold til tabellen .
Læs mere: Excel VBA-kode for hver række i en tabel (tilføj, overskriv, slet osv.)
Lignende læsninger
- Summen af beregnede felter divideret med antal i pivottabel
- Sådan illustreres Relativ frekvensfordeling i Excel
- [Fix] Kan ikke gruppere datoer i pivottabel: 4 mulige løsninger
- Sådan beregnes procentfrekvensfordeling i Excel (2 metoder)
- Pivot tabel opdaterer ikke (5 problemer & Løsninger)
3. Indsæt og overskriv data i en tabel ved hjælp af VBA i Excel
Her vil vi illustrere, hvordan man overskrive eksisterende data i en bord i stedet på Indsættelse af a ny række på data For at gøre det skal vi bruge ListObject.ListRows egenskab af Excel i stedet af den ListRows.Add egenskab vi brugte tidligere . ListObject.ListRows egenskab tager også række nummer ( Hele tal værdi ) som sin argument Lad os sige, at vi ønsker at ændre enhedspris af den Orange fra 2,14 til 2,35 at vi indsat i den tidligere eksempel . Kopier og indsætte følgende kode nedenfor i Visual Basic-editoren.
Sub InsertDataIntoTable() Dim tableName As ListObject Set tableName = ActiveSheet.ListObjects("Table1") Dim addedRow As ListRow Set addedRow = tableName.ListRows(3) With addedRow .Range(1) = "1/1/2022" .Range(2) = "Orange" .Range(3) = 3 .Range(4) = 2.35 End With End Sub
I vores kode, vi sæt argument for den ListObject.ListRows egenskab som 3 hvor den data til Orange hører til . køre kode ved at trykke på F5 og se den forskel .
Koden har ændret kun den enhedspris af den data på række nummer 3 relativ til den tabel .
Læs mere: Sådan indsættes eller slettes rækker og kolonner fra Excel-tabellen
4. Kør en VBA-kode for at indsætte data i en Excel-tabelle baseret på brugerinput
I dette eksempel skal vi indsæt bordnavn og oplysninger om salg af en produkt som brugerinput i stedet for hardcode det i den VBA-kode hver gang Følg nedenstående vejledning for at opnå dette.
- Kopier og indsætte følgende kode i den visuelle kodeeditor.
Sub InsertDataIntoTable() Dim tableName As ListObject Dim A, B, C, D, tName As String tName = Application.InputBox(Prompt:="Navn på tabellen: ", Type:=2) A = Application.InputBox(Prompt:="Ordre Dato: ", Type:=2) B = Application.InputBox(Prompt:="Produktnavn: ", Type:=2) C = Application.InputBox(Prompt:="Mængde: ", Type:=2) D = Application.InputBox(Prompt:="Enhedspris: ",Type:=2) Set tableName = ActiveSheet.ListObjects(tName) Dim addedRow As ListRow Set addedRow = tableName.ListRows.Add() With addedRow .Range(1) = A .Range(2) = B .Range(3) = C .Range(4) = D End With End Sub
- Tryk på F5 til køre koden.
- Sæt navn af den tabel i den indtastningsfelt ( Tabel 1 , i dette eksempel), og tryk på OK.
- Derefter sættes værdierne for Dato, produktnavn, antal, og Pris pr. enhed i den indtastningsfelter at optrådte i rækkefølge I dette eksempel er de værdier, vi har brugt, følgende 1/1/2022, Orange, 3, og 35.
- Som følge heraf har vi fået en ny række med den indsatte data på den bund af den tabel .
Læs mere: Tips til formatering af Excel-tabeller - Ændr tabellens udseende
Noter
Når vi tilføjet a ny række med data ved hjælp af VBA-kode, kan format , og formler få gennemført til den ny række automatisk . I vores eksempel er den TotalPrice kolonne udgange produkt af kolonnerne Antal , og Pris pr. enhed . Vi har bare kun indsat Antal og Værdier for enhedspriser ; den ny række var indsat med den produkt af disse to værdier i den Kolonnen Samlet pris.
Konklusion
Nu ved vi, hvordan man indsætter data i en Excel-tabel ved hjælp af VBA-kode. Forhåbentlig hjælper det dig med at bruge disse metoder mere sikkert. Eventuelle spørgsmål eller forslag glem ikke at skrive dem i kommentarfeltet nedenfor.