Innehållsförteckning
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.xlsm4 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 på botten av den tabell och sedan infoga uppgifter i detta. I vår tabell har vi 4 rader på 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 på uppgifter på 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. på 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 på Insättning av a ny rad på 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 på 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. på 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.