Совет. Другие языки - Google-Translated. Вы можете посетить English версия этой ссылки.
Войти
x
or
x
x
Регистрация
x

or

Как перечислить все сводные таблицы из книги?

Предположим, что у вас есть большая книга, содержащая несколько сводных таблиц, теперь вы хотите перечислить все сводные таблицы в этой книге, возможно ли это? Конечно, следующий код VBA в этой статье сделает вам одолжение. Чтобы узнать подробности, прочитайте нижеприведенную статью.

Список всех сводных таблиц из книги с кодом VBA

Вкладка «Office» Включите редактирование и просмотр с вкладками в Office и упростите свою работу ...
Kutools для Excel решает большинство ваших проблем и повышает производительность на 80%
  • Повторно использовать что-либо: Добавьте наиболее часто используемые или сложные формулы, диаграммы и все остальное в избранное и быстро используйте их в будущем.
  • Больше, чем текстовые функции 20: Извлечь номер из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова ...
  • Инструменты слияния: Несколько рабочих книг и листов в одном; Объединить несколько ячеек / строк / столбцов без потери данных; Объединить повторяющиеся строки и суммы ...
  • Сплит Инструменты: Разбить данные на несколько листов на основе значения; Одна рабочая книга для нескольких файлов Excel, PDF или CSV; От одного столбца до нескольких столбцов ...
  • Вставить Пропуск Скрытые / отфильтрованные строки; Подсчет и сумма по цвету фона; Создать список рассылки и Отправка писем по значению ячейки...
  • Суперфильтр: Создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделям, дням, частоте и более; Фильтр жирным шрифтом, формулами, комментариями ...
  • Более чем мощные функции 300; Работает с Office 2007-2019 и 365; Поддерживает все языки; Простота развертывания на вашем предприятии или в организации.

arrow синий правый пузырь Список всех сводных таблиц из книги с кодом VBA


Следующий код VBA может помочь вам перечислить все имена сводной таблицы вместе со своими атрибутами, такими как диапазон исходных данных, имя листа, обновленная дата и т. Д.

1. Откройте свою книгу, чтобы вы могли перечислить все сводные таблицы.

2, Удерживайте ALT + F11 и открывает Окно Microsoft Visual Basic для приложений.

3. Щелчок Вставить > модуль, и вставьте следующий код в Окно модуля.

Код VBA: список всех сводных таблиц из книги

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, Затем нажмите F5 ключ для запуска этого кода, все имена сводных таблиц, диапазон исходных данных, имя рабочего листа и другие атрибуты перечислены в новом листе, который помещается перед вашим активным листом, как показано на следующем скриншоте:

док-список-все-PivotTable-1


Статьи по теме:

Как проверить, существует ли сводная таблица в рабочей книге?

Как добавить несколько полей в сводную таблицу?


Kutools для Excel решает большинство ваших проблем и повышает производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, графики и все, что вы использовали раньше; Шифрование ячеек с паролем; Создать список рассылки и отправлять электронные письма ...
  • Супер Формула Бар (легко редактировать несколько строк текста и формул); Макет чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Содержание сплит-клеток; Объединить дублирующиеся строки / столбцы... предотвратить повторяющиеся клетки; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выберите пустые строки (все ячейки пусты); Супер найти и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения формулы ссылки; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечение текстаДобавить текст, Удалить по позиции, Удалить пространство; Создание и печать промежуточных итогов подкачки; Преобразование содержимого ячеек и комментариев...
  • Суперфильтр (сохранить и применить схемы фильтров к другим листам); Расширенный поиск по месяцам / неделям / дням, частоте и более; Специальный фильтр жирным шрифтом, курсивом ...
  • Объединить рабочие тетради и рабочие листы; Объединение таблиц на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более чем мощные функции 300, Поддерживает Office / Excel 2007-2019 и 365. Поддерживает все языки. Простота развертывания на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия.
вкладка kte 201905

Вкладка «Office» предоставляет интерфейс с вкладками для Office и упрощает работу

  • Включить редактирование и чтение с вкладками в Word, Excel, PowerPoint, Издатель, Доступ, Visio и Проект.
  • Открывайте и создавайте несколько документов в новых вкладках одного и того же окна, а не в новых окнах.
  • Увеличивает вашу производительность на 50% и уменьшает сотни щелчков мышью для вас каждый день!
нижняя часть офиса
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Fuzz-Head · 1 months ago
    Thanks for the post, I cleaned up the code a little by defining I and Long and deleting the ref to K since it wasn't used. Lastly I added a line just below your .Activate to show .Columns.AutoFit
  • To post as a guest, your comment is unpublished.
    Abraham Garzon · 5 months ago
    This is awesome! I have been looking for a code like this one, but with the addition of showing all active fields per table. I need to clean up the source tables from unnecessary fields (too heavy) and they feed a book of over 300 pivots. I'd prefer not to go one pivot table at a time to figure out which fields I can eliminate... If you could show me how, it would be incredible... Thanks!
  • To post as a guest, your comment is unpublished.
    Vinicius · 5 months ago
    Amazing!!! thksss!!!!
  • To post as a guest, your comment is unpublished.
    Mark · 1 years ago
    Saved me from a major headache!
    Couldn't find what pivot table was causing a "Refresh All Error"
    Boom Listed with locations, Thank you so much
  • To post as a guest, your comment is unpublished.
    chris · 1 years ago
    For Connection Only info the Data connection info isa property of the PivotCache
    I have a workbook that has over 40 pivot tables with a mix of Excel Tables and SQL server Data Connections. I use the following code to keep track of them


    Sub GetPivotTableInfo()

    Dim wb As Workbook
    Dim pvt As PivotTable
    Dim wsheet As Worksheet
    Dim pc As PivotCache

    Set wb = ActiveWorkbook
    For Each wsheet In wb.Worksheets
    For Each pvt In wsheet.PivotTables
    Debug.Print wsheet.Name & ": " & pvt.Name
    Set pc = wb.PivotCaches(pvt.CacheIndex)
    If pc.SourceType = xlDatabase Then
    Debug.Print pc.SourceData
    Else
    If pc.QueryType = xlOLEDBQuery Then
    Debug.Print pc.Connection
    Debug.Print pc.SourceConnectionFile
    Debug.Print pc.WorkbookConnection.Name
    Debug.Print pc.CommandText
    End If
    End If


    Next pvt
    Next wsheet
  • To post as a guest, your comment is unpublished.
    Turnabout · 1 years ago
    Very powerful. Thanks so much.
  • To post as a guest, your comment is unpublished.
    HDF · 2 years ago
    Thanks for this. It's a great piece of code, very useful.

    As others have posted, I think it doesn't work for pivot tables whose underlying data source is based on a Connection Only data query.

    I have a workbook with one data table. I subsequently create more refined workbook data queries based on this one table's data. The queries are connection only (avoiding an unnecessary increase in the size of the workbook). I then created pivot tables that rely on the data in the workbook queries.

    When I run the code, it works fine for traditionally sourced pivot tables, but it hits a run-time error when it gets to the pivot tables based on data in Workbook Queries. Specifically; it gives a Run-time error "1004": Application-defined or object defined error. The line of code where the error occurs is:

    .cells(I, 2).value = pt.SourceData

    Thanks for providing the code and I hope the above helps you refine it.
  • To post as a guest, your comment is unpublished.
    Ross · 2 years ago
    I have tried to run this in excel 2013 and I get the Run-time error '1004': Application-defined or object-defined error.

    If comment out the .Cells(I, 2).Value = pt.SourceData line it will run fine, can you advise me what I might need to do to get the SourceData part to work?

    Thanks Ross
    • To post as a guest, your comment is unpublished.
      EdH · 2 years ago
      [quote name="Ross"]I have tried to run this in excel 2013 and I get the Run-time error '1004': Application-defined or object-defined error.

      If comment out the .Cells(I, 2).Value = pt.SourceData line it will run fine, can you advise me what I might need to do to get the SourceData part to work?

      Thanks Ross[/quote]

      I got the same error. I think it is bombing when the source for a pivot table is the Excel Data Model and used by PowerPivot.
  • To post as a guest, your comment is unpublished.
    Dave · 3 years ago
    I needed to fix a file that had over 60 pivot tables in it. Initially clicked each one at a time to fix ( as is the case for times when someone 'unlinks' them but I could not fina all the wrong ones. It found the last one on a few columns that were hidden on the original) . Nice piece of code !
  • To post as a guest, your comment is unpublished.
    Pat Z · 3 years ago
    This was a massive find for me! Wish I had looked for this solution three days ago. It would have saved me hours!! Thanks!
  • To post as a guest, your comment is unpublished.
    Doaa · 3 years ago
    excellent. thank you.
  • To post as a guest, your comment is unpublished.
    Drip LeBuk · 4 years ago
    Good stuff. Could include this snippet to make the pivot table name a hyperlink.

    .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).Characters(Start:=1, Length:=Len(pt.Name)).Font
    .Underline = xlUnderlineStyleSingle
    .Color = -4165632
    End With