Изменение фильтра сводной таблицы VBA на основе переменной из буфера обмена - PullRequest
0 голосов
/ 20 июня 2020

Я хотел бы иметь al oop, который берет данные из матрицы на вкладке "main", используя этот фильтр данных, данные в сводной таблице на вкладке "pivot", а затем результаты из отфильтрованной сводной таблицы, которую он копирует и вставляет в сводку стол. Данные из матрицы на 1-й вкладке будут скопированы в буфер обмена, и я не знаю, как использовать эти данные из буфера обмена в фильтре в сводной таблице, кажется, работает, когда я объявляю только значение c, а не переменную (SText).

Заранее спасибо за помощь, я новичок в этом.

матрица фильтры пивота

Dim DataObj As MSForms.DataObject
Set DataObj = New MSForms.DataObject  

Dim i As String
i = 2
Do While Range("A" & i).Value <> ""
i = i + 1

Sheets("main").Select
Range("A" & i).Select
Application.CutCopyMode = False
Selection.Copy
DataObj.GetFromClipboard
SText = DataObj.GetText(1)

Sheets("pivot").Select
ActiveSheet.PivotTables("PivotTable2").PivotFields("Vendor").ClearAllFilters
ActiveSheet.PivotTables("PivotTable2").PivotFields("Vendor").CurrentPage = SText
Sheets("main").Select
Range("B" & i).Select
Application.CutCopyMode = False
Selection.Copy
DataObj.GetFromClipboard
SText = DataObj.GetText(1)

Sheets("pivot").Select
ActiveSheet.PivotTables("PivotTable2").PivotFields("Plnt").ClearAllFilters
ActiveSheet.PivotTables("PivotTable2").PivotFields("Plnt").CurrentPage = SText
...