Excel VBA: Infoga data i en tabell (4 exempel)

  • Dela Detta
Hugh West

I den här artikeln visar vi hur du kan infoga uppgifter till en Excel tabell med hjälp av VBA kod . Med hjälp av Excels inbyggda egenskaper och metoder kan vi enkelt lägga till eller skriva över data i en tabell. Låt oss dyka in i exemplen för att få en tydlig förståelse för metoderna tillsammans med VBA-koderna.

Ladda ner övningsboken

Ladda ner den här arbetsboken för att träna medan du läser den här artikeln.

Infoga data i tabell.xlsm

4 exempel på hur du infogar data i en tabell med VBA i Excel

Låt oss säga att vi har en Försäljningslista i en butik med detaljer som beställningsdatum, produktnamn, kvantitet, enhetspris och totalpris.

Hur man skapar en tabell i Excel

Till sväng Datamängd till en Excel-tabell gör följande-

  • Välj hela datasetet .
  • Gå till till den Fliken Infoga från Excel-bandet .
  • Klicka på på den Tabell alternativ.

  • Slutligen klickar du på OK-knappen i den Fönstret Skapa tabell.

  • Vi har framgångsrikt konverterade datamängd till en Excel-tabell .

För att infoga data i en Excel-tabell använder vi flera olika VBA-funktioner och egenskaper i vår kod I följande avsnitt beskrivs hur du kan öppna och skriva kod i den Visual Basic-redigerare.

Skriva kod i Visual Basic Editor

Följ den steg till öppna Visual Basic Editor och skriva lite kod där.

  • Gå till Utvecklare från fliken Excel-bandet .
  • Klicka på Visual Basic-alternativet.

  • I Visual Basic för tillämpningar fönstret, klickar du på Infoga en rullgardinsmeny till Välj Ny modul

Nu när en ny modul är öppnade , skriv lite kod där och tryck på F5 till kör.

1. Infoga data i den sista raden i en tabell med VBA i Excel

I det här exemplet använder vi en VBA kod till Lägg till a ny rad botten av den tabell och sedan infoga uppgifter i detta. I vår tabell har vi 4 rader uppgifter För att lägga till 5:e , kopiera och pasta följande kod i Visual Basic-redigeraren.

 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 

Tryck på F5 till kör kod.

Vi har insatt a ny rad uppgifter botten av den befintlig tabell .

Kodförklaring:

  • I vår kod använde vi ListObjects-objekt av VBA Excel för att ta tag i tabell med sin namn För mer information, varje av den ListObject objekt är en tabell på den arbetsblad . För att få fram tabellens namn, Klicka på på den tabell >> Klicka på på den Fliken Bordskonstruktion i den Excel-bandet.

  • Därefter använde vi ListRows . Lägg till metod för att lägga till en ny rad i den tabell . Detta metod tar två argument : Position och AlltidInsätt .

Genom att ange en heltal kan vi ange Relativ position. av den nytillagd rad i den tabell I detta exempel lämnas tomt argument för positionen. , vilket leder till att en ny rad har varit har lagts till. botten av den tabell .

  • Slutligen ställer vi in data i varje av den celler av den nyligen Tillagd rad I det här fallet var uppgifterna .Range(1) = "1/1/2022" som OrderDate, .Range(2) = "Apple" som Produkt, .Range(3) = 5 som Kvantitet, .Range(4) = 1,77 som Pris per enhet.

Läs mer: Excel tabellnamn: Allt du behöver veta

2. Kör en VBA-kod för att infoga data på en specifik rad i en tabell i Excel

I den här illustrationen kommer vi att lägga till en rad med data vid en en specifik rad i förhållande till tabellen med hjälp av samma kod som vi använde i exemplet ovan. I det här fallet behöver vi bara ange Argument för ställningstagande av den Metoden ListRows.Add i vår kod. Låt oss säga att vi vill lägga till försäljningsuppgifter för Orange med detaljer i rad nummer 3 relativt till den befintligt bord . för att detta ska kunna ske, kopiera och pasta följande kod i den visuella kodredigeraren.

 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ör koden genom att Genom att trycka på F5 infördes uppgifter om försäljning för Orange i Tredje raden i förhållande till tabellen .

Läs mer: Excel VBA-kod för varje rad i en tabell (lägg till, skriv över, ta bort osv.)

Liknande läsningar

  • Summan av det beräknade fältet dividerat med antal i en pivottabell
  • Hur man illustrerar relativ frekvensfördelning i Excel
  • [Fix] Kan inte gruppera datum i en pivottabell: 4 möjliga lösningar
  • Hur man beräknar procentuell frekvensfördelning i Excel (2 metoder)
  • Pivot tabell uppdateras inte (5 frågor & Lösningar)

3. Infoga och skriva över data i en tabell med VBA i Excel

Här visar vi hur du kan skriva över befintliga uppgifter i en tabell i stället Insättning av a ny rad uppgifter För att göra det måste vi använda Egenskapen ListObject.ListRows av Excel istället av den Egenskapen ListRows.Add vi använde oss av tidigare . Egenskapen ListObject.ListRows tar också radnummer ( Heltal värde ) som dess argument . Låt oss säga att vi vill ändra Pris per enhet av den Orange från 2,14 till 2,35 att vi insatt i den tidigare exempel . Kopiera och pasta följande kod i Visual Basic-redigeraren.

 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 vår kod, vi ställa in argument för Egenskapen ListObject.ListRows som 3 där den uppgifter för Orange hör till . kod genom att trycka på F5 och se den skillnad .

Koden har ändrat endast den Pris per enhet av den uppgifter rad nummer 3 relativ till den tabell .

Läs mer: Hur man infogar eller tar bort rader och kolumner från Excel-tabellen

4. Kör en VBA-kod för att infoga data i en Excel-tabell baserat på användarinmatning

I det här exemplet ska vi infoga tabellens namn och uppgifter om försäljningen av en produkt som Användarinmatning i stället för hårdkod den i den VBA-kod varje gång Följ instruktionerna nedan för att göra detta.

  • Kopiera och pasta följande kod i den visuella kodredigeraren.
 Sub InsertDataIntoTable() Dim tableName As ListObject Dim A, B, C, D, tName As String tName = Application.InputBox(Prompt:="Tabellens namn: ", Type:=2) A = Application.InputBox(Prompt:="Beställningsdatum: ", Type:=2) B = Application.InputBox(Prompt:="Produktnamn: ", Type:=2) C = Application.InputBox(Prompt:="Kvantitet: ", Type:=2) D = Application.InputBox(Prompt:="Enhetspris: ",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 

  • Tryck på F5 till kör koden.
  • Lägg till namn av den tabell i den Inmatningsruta ( Tabell1 , i detta exempel) och tryck på OKEJ.

  • Lägg sedan in värdena för Datum, produktnamn, kvantitet, och Pris per enhet i den Inmatningsrutor som förekom sekventiellt I det här exemplet har vi använt följande värden 1/1/2022, Orange, 3, och 35.

  • Som ett resultat av detta har vi fått en ny rad med den Införda uppgifter. botten av den tabell .

Läs mer: Tips för formatering av Excel-tabeller - ändra tabellens utseende

Anteckningar

När vi har lagts till. a ny rad med uppgifter med hjälp av VBA-kod, kan format , och formler få tag på genomförd till den en ny rad automatiskt I vårt exempel är det TotalPrice kolumn utgångar produkt av kolumnerna Kvantitet , och Pris per enhet . Vi har bara endast infört Kvantitet och Värden för enhetspriset ; den ny rad var insatt med den produkt av dessa två värden i den Kolumnen Totalt pris.

Slutsats

Nu vet vi hur man infogar data i en Excel-tabell med hjälp av VBA-kod. Förhoppningsvis hjälper det dig att använda dessa metoder med större säkerhet. Om du har några frågor eller förslag, glöm inte att skriva dem i kommentarsfältet nedan.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.