Excel VBA: Indsæt data i en tabel (4 eksempler)

  • Del Dette
Hugh West

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.xlsm

4 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 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 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 Indsættelse af a ny række 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 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 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.

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.