Note: The other languages of the website are Google-translated. Back to English

Hur listar jag alla pivottabeller från en arbetsbok?

Om du antar att du har en stor arbetsbok som innehåller flera pivottabeller, nu vill du lista alla pivottabeller i denna arbetsbok, är det möjligt? Naturligtvis kommer följande VBA-kod i den här artikeln att göra dig en tjänst. Läs artikeln nedan om du vill veta mer.

Lista alla pivottabeller från en arbetsbok med VBA-kod

Fliken Office Aktiverar flikredigering och surfning i Office, och gör ditt arbete mycket enklare ...
Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%
  • Återanvänd allt: Lägg till de mest använda eller komplexa formlerna, diagrammen och allt annat till dina favoriter och återanvänd dem snabbt i framtiden.
  • Mer än 20 textfunktioner: Extrahera nummer från textsträng; Extrahera eller ta bort en del av texterna; Konvertera siffror och valutor till engelska ord.
  • Sammanfoga verktyg: Flera arbetsböcker och ark till en; Slå ihop flera celler / rader / kolumner utan att förlora data; Slå samman duplicerade rader och summa.
  • Dela verktyg: Dela data i flera ark baserat på värde; En arbetsbok för flera Excel-, PDF- eller CSV-filer; En kolumn till flera kolumner.
  • Klistra över Dolda / filtrerade rader; Räkna och summa av bakgrundsfärg; Skicka personliga e-postmeddelanden till flera mottagare i bulk.
  • Superfilter: Skapa avancerade filterscheman och tillämpas på alla ark; Svart per vecka, dag, frekvens och mer; Filter med fetstil, formler, kommentarer ...
  • Mer än 300 kraftfulla funktioner; Fungerar med Office 2007-2021 och 365; Stöder alla språk; Enkel implementering i ditt företag eller organisation.

pil blå höger bubbla Lista alla pivottabeller från en arbetsbok med VBA-kod

Följande VBA-kod kan hjälpa dig att lista alla pivottabellnamn tillsammans med deras attribut, såsom källdataområde, kalkylbladets namn, uppdaterat datum och så vidare.

1. Öppna din arbetsbok som du vill visa alla pivottabeller.

2. Håll ner ALT + F11 knapparna och det öppnar Microsoft Visual Basic for Applications-fönstret.

3. Klicka Insert > Modulernaoch klistra in följande kod i Modulfönster.

VBA-kod: Lista alla pivottabeller från en arbetsbok

Sub ListPivotsInfor()
'Update 20141112
    Dim St As Worksheet
    Dim NewSt As Worksheet
    Dim pt As PivotTable
    Dim I, K As Long
    Application.ScreenUpdating = False
    Set NewSt = Worksheets.Add
    I = 1: K = 2
    With NewSt
        .Cells(I, 1) = "Name"
        .Cells(I, 2) = "Source"
        .Cells(I, 3) = "Refreshed by"
        .Cells(I, 4) = "Refreshed"
        .Cells(I, 5) = "Sheet"
        .Cells(I, 6) = "Location"
        For Each St In ActiveWorkbook.Worksheets
            For Each pt In St.PivotTables
                I = I + 1
                .Cells(I, 1).Value = pt.Name
                .Cells(I, 2).Value = pt.SourceData
                .Cells(I, 3).Value = pt.RefreshName
                .Cells(I, 4).Value = pt.RefreshDate
                .Cells(I, 5).Value = St.Name
                .Cells(I, 6).Value = pt.TableRange1.Address
            Next
        Next
        .Activate
    End With
    Application.ScreenUpdating = True
End Sub

4. Tryck sedan på F5 nyckel för att köra den här koden, alla pivottabellnamn, källdataområde, kalkylbladets namn och andra attribut listas i ett nytt kalkylblad som placeras på framsidan av ditt aktiva kalkylblad enligt följande skärmdump:

doc-list-all-pivottable-1


Relaterade artiklar:

Hur kontrollerar jag om det finns en pivottabell i en arbetsbok?

Hur lägger jag till flera fält i pivottabellen?


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (20)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Bra grejer. Kan inkludera detta utdrag för att göra pivottabellens namn till en hyperlänk. .Cells(I, 1). Parent.Hyperlinks.Add Anchor:=.Cells(I, 1) _ , Address:="" _ , SubAddress:="'" + St.Name + "'!" + Split(pt.TableRange1.Address, ":")(0) _ , TextToDisplay:=pt.Name With .Cells(I, 7).Font .ColorIndex = xlAutomatic .Underline = xlUnderlineStyleNone End With With .Cells(I, 7).Tecken(Start:=1, Length:=Len(pt.Name)).Teckensnitt .Underline = xlUnderlineStyleSingle .Color = -4165632 Slut med
Denna kommentar minimerades av moderatoren på webbplatsen
ЖАль что не работает, наверное изза того что я не могу нормально разбить на строки och возможно иззановыхн. Не могли бы слелать код более читабельным (разбить на строки и переменные).
Denna kommentar minimerades av moderatoren på webbplatsen
excellent. tack.
Denna kommentar minimerades av moderatoren på webbplatsen
Detta var ett enormt fynd för mig! Önskar att jag hade letat efter den här lösningen för tre dagar sedan. Det skulle ha sparat mig timmar!! Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Jag behövde fixa en fil som hade över 60 pivottabeller i den. Klickade först på var och en åt gången för att fixa (som är fallet för tillfällen då någon "kopplar bort" dem men jag kunde inte slutföra alla fel. Den hittade den sista på några kolumner som var gömda på originalet). Fin kodbit!
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har försökt köra detta i excel 2013 och jag får Run-time error '1004': Application-defined eller object-defined error. Om du kommenterar raden .Cells(I, 2).Value = pt.SourceData kommer den att fungera bra, kan du tipsa mig om vad jag kan behöva göra för att få SourceData-delen att fungera? Tack Ross
Denna kommentar minimerades av moderatoren på webbplatsen
[quote]Jag har försökt köra detta i excel 2013 och jag får Run-time error '1004': Application-defined eller object-defined error. Om du kommenterar raden .Cells(I, 2).Value = pt.SourceData kommer den att fungera bra, kan du tipsa mig om vad jag kan behöva göra för att få SourceData-delen att fungera? Tack RossAv Ross[/quote] Jag fick samma fel. Jag tror att det är bombningar när källan för en pivottabell är Excel-datamodellen och används av PowerPivot.
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för detta. Det är en bra bit kod, mycket användbar. Som andra har skrivit tror jag att det inte fungerar för pivottabeller vars underliggande datakälla är baserad på en endast Connection-datafråga. Jag har en arbetsbok med en datatabell. Jag skapar sedan mer förfinade arbetsboksdatafrågor baserat på denna ena tabells data. Frågorna är endast anslutningar (för att undvika en onödig ökning av storleken på arbetsboken). Jag skapade sedan pivottabeller som förlitar sig på data i arbetsboksfrågorna. När jag kör koden fungerar den bra för traditionellt hämtade pivottabeller, men den träffar ett körtidsfel när den kommer till pivottabellerna baserat på data i Workbook Queries. Specifikt; det ger ett Runtime error "1004": Applikationsdefinierat eller objektdefinierat fel. Kodraden där felet uppstår är: .cells(I, 2).value = pt.SourceData Tack för att du tillhandahåller koden och jag hoppas att ovanstående hjälper dig att förfina den.
Denna kommentar minimerades av moderatoren på webbplatsen
Väldigt mäktig. Tack så mycket.
Denna kommentar minimerades av moderatoren på webbplatsen
För endast anslutningsinformation är dataanslutningsinformation en egenskap för PivotCache
Jag har en arbetsbok som har över 40 pivottabeller med en blandning av Excel-tabeller och SQL-serverdataanslutningar. Jag använder följande kod för att hålla reda på dem


Sub GetPivotTableInfo()

Dim wb som arbetsbok
Dim pvt som pivottabell
Dim wsheet Som arbetsblad
Dim pc som pivotcache

Ställ in wb = ActiveWorkbook
För varje wsheet I wb.Worksheets
För varje pvt I wsheet.PivotTables
Debug.Print wsheet.Name & ": " & pvt.Name
Ställ in pc = wb.PivotCaches(pvt.CacheIndex)
Om pc.SourceType = xlDatabase Då
Debug.Print pc.SourceData
annars
Om pc.QueryType = xlOLEDBQuery Då
Debug.Print pc.Connection
Debug.Print pc.SourceConnectionFile
Debug.Print pc.WorkbookConnection.Name
Debug.Print pc.CommandText
End If
End If


Nästa pvt
Nästa ark
Denna kommentar minimerades av moderatoren på webbplatsen
Räddade mig från en stor huvudvärk!
Det gick inte att hitta vilken pivottabell som orsakade ett "Uppdatera alla-fel"
Boom Listad med platser, tack så mycket
Denna kommentar minimerades av moderatoren på webbplatsen
Fantastisk!!! thksss!!!!
Denna kommentar minimerades av moderatoren på webbplatsen
Det här är häftigt! Jag har letat efter en kod som denna, men med tillägget att visa alla aktiva fält per tabell. Jag behöver rensa upp källtabellerna från onödiga fält (för tunga) och de matar en bok med över 300 pivoter. Jag föredrar att inte gå en pivottabell i taget för att ta reda på vilka fält jag kan eliminera... Om du kunde visa mig hur, skulle det vara otroligt... Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för inlägget, jag rensade lite i koden genom att definiera I och Long och ta bort refen till K eftersom den inte användes. Till sist lade jag till en rad precis under din .Activate för att visa .Columns.AutoFit
Denna kommentar minimerades av moderatoren på webbplatsen
VÄLDIGT behändig att ha i ett nafs! Tack.
Denna kommentar minimerades av moderatoren på webbplatsen
Det är jättebra.
Denna kommentar minimerades av moderatoren på webbplatsen
Stor hjälp, sparade massor av tid på att spåra en av ett antal identiskt namngivna pivottabeller i en arbetsbok!
Denna kommentar minimerades av moderatoren på webbplatsen
körtidsfel 1004
Denna kommentar minimerades av moderatoren på webbplatsen
Passar perfekt!! Tack så mycket
Denna kommentar minimerades av moderatoren på webbplatsen
tyvärr får jag flera fel, detta skulle ha varit helt fantastiskt för mina arbetsböcker med flera flikar och flera pivoter
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL