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

Cum se listează toate tabelele pivot dintr-un registru de lucru?

Presupunând că aveți un registru de lucru mare care conține mai multe tabele pivot, acum doriți să enumerați toate tabelele pivot din acest registru de lucru, este posibil? Desigur, următorul cod VBA din acest articol vă va face o favoare. Pentru a afla mai multe detalii, vă rugăm să citiți articolul de mai jos.

Enumerați toate tabelele pivot dintr-un registru de lucru cu cod VBA

Fila Office Activați editarea și navigarea cu file în Office și faceți munca mult mai ușoară ...
Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%
  • Reutilizați orice: Adăugați cele mai utilizate sau complexe formule, diagrame și orice altceva la preferatele dvs. și reutilizați-le rapid în viitor.
  • Peste 20 de caracteristici text: Extrageți numărul din șirul de text; Extrageți sau eliminați o parte din texte; Conversia numerelor și valutelor în cuvinte în limba engleză.
  • Instrumente de îmbinare: Mai multe cărți de lucru și foi într-unul; Combinați mai multe celule / rânduri / coloane fără a pierde date; Combinați rândurile duplicate și suma.
  • Instrumente divizate: Împărțiți datele în mai multe foi bazate pe valoare; Un registru de lucru pentru mai multe fișiere Excel, PDF sau CSV; O coloană la mai multe coloane.
  • Lipiți săriți Rânduri ascunse / filtrate; Număr și sumă de Culoarea fundalului; Trimiteți e-mailuri personalizate către mai mulți destinatari în bloc.
  • Super Filtru: Creați scheme avansate de filtrare și aplicați oricăror foi; Sortează pe săptămână, zi, frecvență și multe altele; Filtru prin îndrăznețe, formule, comentarii ...
  • Peste 300 de caracteristici puternice; Funcționează cu Office 2007-2021 și 365; Suporta toate limbile; Implementare ușoară în întreprinderea sau organizația dvs.

săgeată albastru dreapta balon Enumerați toate tabelele pivot dintr-un registru de lucru cu cod VBA

Următorul cod VBA vă poate ajuta să listați toate numele tabelelor pivot împreună cu atributele lor, cum ar fi intervalul de date sursă, numele foii de lucru, data actualizată și așa mai departe.

1. Deschideți registrul de lucru pe care doriți să-l listați toate tabelele pivot.

2. Țineți apăsat butonul ALT + F11 tastele și deschide fișierul Fereastra Microsoft Visual Basic pentru aplicații.

3. Clic Insera > Moduleși lipiți următorul cod în Fereastra modulului.

Cod VBA: enumeră toate tabelele pivot dintr-un registru de lucru

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. Apoi apăsați F5 tasta pentru a rula acest cod, toate numele tabelului pivot, intervalul de date sursă, numele foii de lucru și alte atribute sunt listate într-o nouă foaie de lucru care este plasată în partea din față a foii de lucru active, după cum se arată în următoarea captură de ecran:

lista-doc-toate-pivotabile-1


Legate de articole:

Cum să verificați dacă există un tabel pivot într-un registru de lucru?

Cum se adaugă mai multe câmpuri în tabelul pivot?


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (20)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Lucruri bune. Ar putea include acest fragment pentru a face numele tabelului pivot un hyperlink. .Cells(I, 1).Parent.Hyperlinks.Add Anchor:=.Cells(I, 1) _ , Address:="" _ , SubAddress:="'" + St.Name + "'!" + Split(pt.TableRange1.Address, ":")(0) _ , TextToDisplay:=pt.Name Cu .Cells(I, 7).Font .ColorIndex = xlAutomatic .Underline = xlUnderlineStyleNone End With .Cells(I, 7).Caractere(Start:=1, Length:=Len(pt.Name)).Font .Underline = xlUnderlineStyleSingle .Color = -4165632 End With
Acest comentariu a fost redus la minimum de moderatorul de pe site
Жаль что не работает, наверное ianuarie того что я не могу нормально разбить на нроки ianuați. Не могли бы слелать код более читабельным (разбить на строки и переменные).
Acest comentariu a fost redus la minimum de moderatorul de pe site
excelent. mulțumesc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Aceasta a fost o descoperire masivă pentru mine! Aș fi vrut să fi căutat această soluție acum trei zile. Mi-ar fi economisit ore!! Mulțumiri!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Trebuia să repar un fișier care conținea peste 60 de tabele pivot. Inițial am făcut clic pe fiecare pe rând pentru a remedia (cum este cazul momentelor în care cineva le „deconectează”, dar nu le-am putut rezolva pe toate greșite. L-a găsit pe ultimul pe câteva coloane care erau ascunse pe original) . Frumoasă bucată de cod!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am încercat să rulez acest lucru în Excel 2013 și primesc eroarea de rulare „1004”: eroare definită de aplicație sau definită de obiect. Dacă comentați linia .Cells(I, 2).Value = pt.SourceData, va funcționa bine, puteți să mă sfătuiți ce ar putea avea nevoie să fac pentru ca partea SourceData să funcționeze? Mulțumesc Ross
Acest comentariu a fost redus la minimum de moderatorul de pe site
[citat]Am încercat să rulez acest lucru în Excel 2013 și primesc eroarea de rulare „1004”: eroare definită de aplicație sau definită de obiect. Dacă comentați linia .Cells(I, 2).Value = pt.SourceData, va funcționa bine, puteți să mă sfătuiți ce ar putea avea nevoie să fac pentru ca partea SourceData să funcționeze? Mulțumesc RossDe Ross[/quote] Am aceeași eroare. Cred că este bombă când sursa pentru un tabel pivot este modelul de date Excel și este folosită de PowerPivot.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Multumesc pentru asta. Este o bucată grozavă de cod, foarte utilă. După cum au postat alții, cred că nu funcționează pentru tabelele pivot a căror sursă de date de bază se bazează pe o interogare de date numai pentru conexiune. Am un registru de lucru cu un tabel de date. Ulterior, creez interogări mai rafinate de date din registrul de lucru pe baza datelor acestui tabel. Interogările sunt doar conexiuni (evitând o creștere inutilă a dimensiunii registrului de lucru). Apoi am creat tabele pivot care se bazează pe datele din interogările registrului de lucru. Când rulez codul, funcționează bine pentru tabelele pivot obținute în mod tradițional, dar lovește o eroare de rulare atunci când ajunge la tabelele pivot bazate pe datele din Interogări din registru de lucru. Specific; dă o eroare de rulare „1004”: eroare definită de aplicație sau definită de obiect. Linia de cod în care apare eroarea este: .cells(I, 2).value = pt.SourceData Vă mulțumim pentru furnizarea codului și sper că cele de mai sus vă ajută să-l rafinați.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Foarte puternic. Multumesc mult.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Pentru informații numai conexiune, informațiile conexiunii de date sunt o proprietate a PivotCache-ului
Am un registru de lucru care are peste 40 de tabele pivot cu o combinație de tabele Excel și conexiuni de date SQL server. Folosesc următorul cod pentru a le urmări


Sub GetPivotTableInfo()

Dim wb Ca registru de lucru
Dim pvt ca tabel pivot
Dim wsheet As Worksheet
Dim computer ca PivotCache

Set wb = ActiveWorkbook
Pentru fiecare wsheet În wb.Worksheets
Pentru fiecare pvt în wsheet.PivotTables
Debug.Print wsheet.Name & ": " & pvt.Name
Set pc = wb.PivotCaches(pvt.CacheIndex)
Dacă pc.SourceType = xlDatabase Atunci
Debug.Print pc.SourceData
Altfel
Dacă pc.QueryType = xlOLEDBQuery Atunci
Depanare.Imprimare pc.Conexiune
Debug.Print pc.SourceConnectionFile
Debug.Print pc.WorkbookConnection.Name
Debug.Print pc.CommandText
Final, dacă
Final, dacă


Următorul pvt
Următoarea foaie
Acest comentariu a fost redus la minimum de moderatorul de pe site
M-a salvat de o mare durere de cap!
Nu s-a putut găsi ce tabel pivot a cauzat o „Eroare de reîmprospătare a tuturor”
Boom Listat cu locații, mulțumesc mult
Acest comentariu a fost redus la minimum de moderatorul de pe site
Uimitor!!! multumesc!!!!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Asta e grozav! Am căutat un cod ca acesta, dar cu adăugarea de a afișa toate câmpurile active pe tabel. Trebuie să curăț tabelele sursă de câmpurile inutile (prea grele) și ele alimentează o carte de peste 300 de pivot. Aș prefera să nu merg câte un tabel pivot odată pentru a-mi da seama ce câmpuri pot elimina... Dacă ai putea să-mi arăți cum, ar fi incredibil... Mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc pentru postare, am curățat puțin codul definind I și Long și ștergând referința la K, deoarece nu a fost folosit. În cele din urmă, am adăugat o linie chiar sub .Activate pentru a afișa .Columns.AutoFit
Acest comentariu a fost redus la minimum de moderatorul de pe site
FOARTE la îndemână de avut la un pic! Mulțumesc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Asta-i grozav.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ajutor imens, mi-a economisit o grămadă de timp urmărind unul dintre numeroasele tabele pivot cu nume identic într-un registru de lucru!
Acest comentariu a fost redus la minimum de moderatorul de pe site
eroare de rulare 1004
Acest comentariu a fost redus la minimum de moderatorul de pe site
Se potrivește perfect!! Mulțumesc mult
Acest comentariu a fost redus la minimum de moderatorul de pe site
din păcate, primesc mai multe erori, acest lucru ar fi fost absolut grozav pentru registrele mele de lucru cu mai multe file și mai multe pivoturi
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL