Nano Hash - криптовалюты, майнинг, программирование

Цикл для фильтрации сводной таблицы на основе значений на другом листе

Моя цель - отфильтровать сводную таблицу, используя диапазон на другом листе.

Мой стержень находится в рабочих листах («Отчет о старении»).

Мои справочные данные, с помощью которых я хочу фильтровать, находятся в столбцах A2 и далее в рабочих листах («Инструкции»).

Приведенный ниже код работал с таблицей, в которой не было сводной таблицы.

Мне нужно взять значение из A2, затем отфильтровать («Идентификатор клиента») и экспортировать в Excel, сохранить и т. д. со значениями в A3, A4, A5.

Sub Pivotfilter()

Dim varItemsToReplace As Variant
Dim varItem As Variant
Dim wksSource As Worksheet
Dim wksDest As Worksheet
Dim rngSource As Range
Dim rngSource2 As Range
Dim rngCell As Range

Set wksSource = Worksheets("Instructions")
Set wksDest = Worksheets("Aging Report")

With wksSource
    Set rngSource = .Range("A2:A" & .Cells(.Rows.Count, "A").End(xlUp).Row)
End With

For Each rngCell In rngSource
    With wksDest
        ActiveSheet.PivotTables("PivotTable40").PivotFields ("Client ID")
        .PivotFields(rngCell.Value).Visible = True
        Dim wb As Workbook
        Set wb = Workbooks.Add
        Windows("XXXXXXX").Activate
        Sheets("Aging Report").Select
        Sheets("Aging Report").Copy Before:=wb.Sheets(1)
        wb.SaveAs "C:\Users\XXX\Desktop\SOA\" & .Range("B3").Value & " - " & .Range("B4").Value & ".xlsx"
        wb.Close
        Windows("XXXXXXX.xlsm").Activate
    End With
Next rngCell

End Sub
23.12.2018

Ответы:


1

Для фильтрации по значению мой предпочтительный метод — добавить больше столбцов к самим данным, установить значения по формулам и добавить эти столбцы в сводку.

Например, столбец Scope boolean добавлен в сводной фильтр, фильтрация только по истине

Добавление столбца возраста 30/60/90, добавьте его в сводную строку, чтобы сгруппировать по возрасту.

Так далее

Это позволяет вам избежать сложностей с иглами, объединяя две менее известные области знаний vba в целом и vba специально для разворотов.

24.12.2018

2

Некоторые полезные рекомендации:

Необработанные данные:

введите здесь описание изображения

Выберите данные и создайте сводную таблицу с именем «pvtTest» в Shhet 5.

Пытаться:

Option Explicit

Sub test()

    Dim pvt As PivotTable
    Dim Pf As PivotField
    Dim strFilter As String

    'Assign to variable "pvt" the pivot table to work with it
    Set pvt = Worksheets("Sheet5").PivotTables("pvtTest")

    'Assigh to "strFilter" the string to filter
    strFilter = "A"

    'Use column "Shop" as a filter of pivot table
    pvt.PivotFields("Shop").Orientation = xlPageField

    'Assign by which column the pivot table will be filtered
    Set Pf = Worksheets("Sheet5").PivotTables("pvtTest").PivotFields("Shop")

    'Clear filter previous choices
    Pf.ClearAllFilters

    'Select to filter the pivot table based on the value of "strFilter"
    Pf.CurrentPage = strFilter

End Sub
24.12.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..