Excel VBA för att skapa en tabell från ett intervall (6 exempel)

  • Dela Detta
Hugh West

Under arbetet med Microsoft Excel kan vi använda oss av att undersöka stora mängder data. Att omvandla dessa datavärden till en tabell är ett av de bästa alternativen. Med Excel-tabeller kan vi snabbt sortera och filtrera data, lägga till nya poster och omedelbart uppdatera diagram och PivotTables. Och Excel VBA hjälper användaren att anpassa programmet med några enkla koder. I den här artikeln kommer vi att se några exempel på Excel VBA för att skapa en tabell från ett intervall.

Ladda ner övningsboken

Du kan ladda ner arbetsboken och öva med dem.

Skapa tabell från intervall.xlsm

6 exempel på Excel VBA för att skapa en tabell från ett intervall

Tabeller började som listor i Excels menyutgåva, men de fick fler funktioner i bandvarianterna. Om du omvandlar ett dataområde till en tabell utökas möjligheterna, vilket gör att du kan arbeta snabbare och enklare. konvertera intervallet till en tabell med hjälp av VBA är det enklaste sättet än att använda bandet.

Anta att vi har ett enkelt dataset som innehåller några objekt i kolumnen B , dessa artiklars kvantitet i kolumnen C , och den totala försäljningen för varje artikel i kolumnen D Nu vill vi omvandla dataområdet till en tabell. Låt oss visa olika exempel och steg-för-steg-instruktioner för att skapa en tabell från ett intervall. B4:D9 med Excel VBA.

Använd ListObjects.Add för att omvandla ett intervall till en Excel-tabell. Kalkylarkobjektet har en egenskap ListObjects . ListObjects har en teknik som kallas Lägg till Kriterierna för .Lägg till är följande.

expression .Add(SourceType, Source, LinkSource, HasHeaders,Destination)

Och använd SourceType xlSrcRange .

1. Excel VBA för att generera en tabell från ett intervall

Med Excel VBA kan användarna enkelt använda koden som fungerar som Excel-menyer från bandet. För att använda koden VBA kod för att generera en tabell från intervallet, låt oss följa proceduren nedan.

STEG:

  • Först går du till Utvecklare i bandet.
  • För det andra, från den Kod kategori, klicka på Visual Basic för att öppna Redigerare för Visual Basic . eller tryck på Alt + F11 för att öppna Redigerare för Visual Basic .
  • Istället för att göra detta kan du högerklicka på arbetsbladet och gå till Visa kod Detta tar dig också till Redigerare för Visual Basic .

  • Detta kommer att visas i Redigerare för Visual Basic där vi skriver våra koder för att skapa en tabell från ett intervall.
  • För det tredje klickar du på Modul från Infoga rullgardinsmenyn.

  • Detta skapar en Modul i arbetsboken.
  • Kopiera och klistra in VBA koden som visas nedan.

VBA-kod:

 Sub Create_Table() Sheet1.ListObjects.Add(xlSrcRange, Range("B4:D9"), , xlYes).Name = "Table1" End Sub 
  • Därefter kör du koden genom att klicka på RubSub eller genom att trycka på tangentbordsgenvägen F5 .

Du behöver inte ändra koden, du kan bara ändra intervallet enligt dina behov.

  • Och slutligen, om du följer stegen kommer du att skapa en tabell från intervallet B4:D9 .

VBA-kodförklaring

 Sub Create_Table() 

Under är en del av koden som används för att hantera arbetet i koden, men som inte returnerar något värde. Den kallas också för underprocedur. Så vi kallar vår procedur för Create_Table() .

 Sheet1.ListObjects.Add(xlSrcRange, Range("B4:D9"), , xlYes).Name = "Table1" 

Detta är den viktigaste kodraden som omvandlar intervallet till en tabell. Vi vet redan att ListObjects.Add för att omvandla ett intervall till en Excel-tabell. Och vi använder xlSrcRange som en källtyp. Vi deklarerar också vårt intervall Range("B4:D9") Och slutligen, namnge vår tabell som Tabell1 .

 Slutar under 

Detta avslutar förfarandet.

Läs mer: Hur du uppdaterar pivottabellens intervall (5 lämpliga metoder)

2. Konstruera en tabell från ett intervall med Excel VBA

Låt oss se ett annat exempel på hur du skapar en tabell från ett intervall med Excel VBA.

STEG:

  • Gå först till Utveckla r-fliken i bandet.
  • För det andra klickar du på Visual Basic för att öppna Redigerare för Visual Basic .
  • Ett annat sätt att öppna Redigerare för Visual Basic är helt enkelt att trycka på Alt + F11 .
  • Eller högerklicka på arket och välj sedan Visa kod .
  • Gå sedan till Infoga och välj Modul från rullgardinsmenyn.
  • Detta kommer att öppna fönstret Visual Basic.
  • Därefter kopierar du och klistrar in VBA-kod nedan.

VBA-kod:

 Sub Generate_Table() Dim tb2 As Range Dim wsht As Worksheet Set tb2 = Range("B4").CurrentRegion Set wsht = ActiveSheet ws.ListObjects.Add(SourceType:=xlSrcRange, Source:=tb2).Name = "Table2" End Sub 
  • Tryck dessutom på F5-tangenten eller klicka på Kör underordnat för att köra koden.

  • Du får det resultat som visas i Metod 1 .

VBA-kodförklaring

 Dim tb2 As Range Dim wsht As Worksheet 

DIM uttalande i VBA hänvisar till " deklarera, " och det måste användas för att deklarera en variabel. Vi deklarerar alltså vårt intervall till tb2 och arbetsblad till ws .

 Set tb2 = Range("B4").CurrentRegion Set wsht = ActiveSheet 

Med VBA Set kan vi helt enkelt undvika att behöva skriva in det område som vi vill välja om och om igen när vi kör koden. Så vi ställer in vårt område till den aktuella regionen och vårt arbetsblad till det aktiva arbetsbladet.

 wsht.ListObjects.Add(SourceType:=xlSrcRange, Source:=tb2).Name = "Table2" 

Med den här kodraden skapar vi tabellen från intervallet och namnger tabellen Tabell2 .

Läs mer: Hur man använder en Excel-tabell med VBA (9 möjliga sätt)

3. Skapa en tabell från ett intervall med VBA i Excel

Låt oss titta på ett annat exempel på hur du använder Excel VBA för att skapa en tabell från ett intervall.

STEG:

  • Till att börja med väljer du hela det område som du vill konvertera till en tabell.
  • För det andra klickar du på Utvecklare i bandet.
  • För det tredje, starta Redigerare för Visual Basic genom att klicka på Visual Basic .
  • Alternativt kan du komma åt Redigerare för Visual Basic genom att trycka på Alt + F11 .
  • Eller, högerklicka på på arket och välj Visa kod från menyn.
  • Därefter väljer du den Modul från rullgardinsrutan under Infoga .
  • Fönstret Visual Basic visas.
  • Skriv koden där.

VBA-kod:

 Sub Create_Table3() Dim r As Range Dim wsht As Worksheet Dim tb3 As ListObject Set r = Selection.CurrentRegion Set wsht = ActiveSheet Set tb3 = wsht.ListObjects.Add(SourceType:=xlSrcRange, Source:=r, XlListObjecthasheaders:=x1Yes) End Sub 
  • Slutligen trycker du på F5-tangenten för att köra koden.

  • Detta kommer att skapa en tabell från det dataområde som vi fick i Metod 1 .

Läs mer: Hur man gör en tabell i Excel (med anpassning)

Liknande läsningar

  • Summan av det beräknade fältet dividerat med antal i en pivottabell
  • Hur man illustrerar relativ frekvensfördelning i Excel
  • Excel-pivottabell Gruppera efter vecka (3 lämpliga exempel)
  • [Fix] Kan inte gruppera datum i en pivottabell: 4 möjliga lösningar
  • Hur man gör en amorteringstabell i Excel (4 metoder)

4. Använd VBA för att skapa en dynamisk tabell från ett intervall

Låt oss ta en titt på ett annat sätt att skapa en tabell från ett intervall med Excel VBA.

STEG:

  • För att börja öppnar du bandet och väljer Utvecklare alternativ.
  • För att få tillgång till Redigerare för Visual Basic , klicka på Visual Basic .
  • Tryck på Alt + F11 kommer också att ta fram den Redigerare för Visual Basic .
  • Alternativt, högerklicka på arket och välj Visa kod från menyn som visas.
  • Från och med nu, från Infoga rullgardinsalternativet, välj Modul .
  • Kopiera och klistra sedan in VBA koden som följer.

VBA-kod:

 Sub Create_Dynamic_Table1() Dim tbOb As ListObject Dim TblRng As Range With Sheets("Example4") lLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row lLastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column Set TblRng = .Range("A1", .Cells(lLastRow, lLastColumn)) Set tbOb = .ListObjects.Add(xlSrcRange, TblRng, , xlYes) tbOb.Name = "DynamicTable1" tbOb.TableStyle = "TableStyleMedium14" End With EndUnder 
  • Kör koden genom att trycka på F5 nyckel.

  • Såsom framgår av Metod 1 illustrationen kommer bordet att byggas från sortimentet.

VBA-kodförklaring

 Sub Create_Dynamic_Table1() 

På denna rad anges namnet på underförfarandet.

 Dim tbOb As ListObject Dim TblRng As Range 

Dessa två rader används för variabeldeklaration.

 Med ark("Example4") 

Med uttalande gör det möjligt att göra en sekvens av uttalanden om ett enda objekt utan att behöva omdefiniera objektets namn. Vi omsluter alltså Med uttalande med arkets namn.

 lLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row lLastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column 

Dessa är till för att hitta den sista raden respektive den sista kolumnen.

 Set TblRng = .Range("A1", .Cells(lLastRow, lLastColumn)) 

Område för att skapa tabellen.

 Set tbOb = .ListObjects.Add(xlSrcRange, TblRng, , xlYes) 

Skapa en tabell i det ovan angivna intervallet.

 tbOb.Name = "DynamicTable1" 

Ange tabellnamn

 tbOb.TableStyle = "TableStyleMedium14" 

Ange bordsstil.

Läs mer: Skapa en tabell i Excel med hjälp av en genväg (8 metoder)

5. Skapa en dynamisk tabell från intervallet

Ta en titt på en annan Excel VBA-metod för att skapa en tabell från ett intervall.

STEG:

  • Öppna bandet och välj Utvecklare från rullgardinsmenyn.
  • Välj sedan Visual Basic för att öppna Redigerare för Visual Basic .
  • Redigerare för Visual Basic kan också nås genom att trycka på Alt + F11 .
  • Alternativt kan du högerklicka på arket och välj Visa kod från snabbmenyn.
  • Därefter väljer du Modul från Infoga rullgardinsmenyn.
  • Kopiera sedan följande VBA-kod och klistra in den.

VBA-kod:

 Sub Create_Dynamic_Table2() Dim tbObj As ListObject Dim TblRng As Range With Sheets("Example5") .Range("A1").Select Selection.CurrentRegion.Select Set tbObj = .ListObjects.Add(xlSrcRange, Selection, , xlYes) tbObj.Name = "DynamicTable2" tbObj.TableStyle = "TableStyleMedium15" End With End Sub 
  • Slutligen kör du koden genom att trycka på F5 på tangentbordet och du ser resultatet i arbetsbladet.

  • Och som framgår av Metod 1 illustrationen, kommer tabellen att konstrueras utifrån intervallet.

Läs mer: Hur du får Excel-tabeller att se bra ut (8 effektiva tips)

6. Använd Excel VBA för att skapa en dynamisk tabell

Låt oss utforska ett annat Excel VBA-sätt att skapa en tabell från ett intervall.

STEG:

  • Till att börja med går du till Utvecklare flik> Visual Basic > Infoga > Modul .
  • Eller, Högerklicka på på kalkylbladet öppnar ett fönster. Gå därifrån till Visa kod .
  • Detta tar dig till Redigerare för Visual Basic där vi kan skriva VBA-makron.
  • Om du däremot trycker på Alt + F11 öppnar också Redigerare för Visual Basic .
  • Därefter skriver du VBA kod.

VBA-kod:

 Sub Create_Dynamic_Table3() Dim tableObj As ListObject Dim TblRng As Range With Sheets("Example6") lLastRow = .UsedRange.Rows.Count lLastColumn = .UsedRange.Columns.Count Set TblRng = .Range("A1", .Cells(lLastRow, lLastColumn)) Set tableObj = .ListObjects.Add(xlSrcRange, TblRng, , xlYes) tableObj.Name = "DynamicTable3" tableObj.TableStyle = "TableStyleMedium16" End With End Sub 
  • Kör koden för att se resultatet genom att trycka på knappen F5-tangenten .

  • Och tabellen kommer att skapas från intervallet som visas i bilden av Metod 1 .

Läs mer: Hur man skapar en tabell i Excel med data (5 sätt)

Slutsats

Ovanstående metoder hjälper dig att skapa en tabell från ett intervall i Excel. Hoppas att det här hjälper dig! Om du har några frågor, förslag eller feedback, låt oss veta det i kommentarsfältet. Du kan också ta en titt på våra andra artiklar i ExcelWIKI.com blogg!

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.