Есть сводная таблица на основе OLAP с огромным списком всего, и есть определенный список, который необходимо отобразить в данной сводной таблице OLAP.
Файл с примером приложите не получается, но вот рабочий макрос, который фильтрует данные в сводной таблице, но если в списке будет значение, которого нет в OLAP, то ошибка
[vba]
Код
Sub Макрос1()
Dim y As Integer Dim arr(2 To 100)
For y = 2 To 100 If Sheets("1").Range("K" & y).Value <> 0 Then arr(y) = "[OLAP].[Код номенклатуры].&[" & Sheets("1").Range("K" & y).Value & "]" End If Next y Sheets("1").PivotTables("1").PivotFields("[OLAP].[Код номенклатуры].[Код номенклатуры]").VisibleItemsList = arr
End Sub
[/vba]
Просьба подсказать, как это можно поправить.
Всем доброго дня!
Есть сводная таблица на основе OLAP с огромным списком всего, и есть определенный список, который необходимо отобразить в данной сводной таблице OLAP.
Файл с примером приложите не получается, но вот рабочий макрос, который фильтрует данные в сводной таблице, но если в списке будет значение, которого нет в OLAP, то ошибка
[vba]
Код
Sub Макрос1()
Dim y As Integer Dim arr(2 To 100)
For y = 2 To 100 If Sheets("1").Range("K" & y).Value <> 0 Then arr(y) = "[OLAP].[Код номенклатуры].&[" & Sheets("1").Range("K" & y).Value & "]" End If Next y Sheets("1").PivotTables("1").PivotFields("[OLAP].[Код номенклатуры].[Код номенклатуры]").VisibleItemsList = arr
End Sub
[/vba]
Просьба подсказать, как это можно поправить.creyc-alvlad
Сообщение отредактировал creyc-alvlad - Среда, 18.12.2019, 09:44
Sub Макрос1() Dim y As Integer Dim arr(2 To 100) For y = 2 To 100 If Sheets("1").Range("K" & y).Value <> 0 And _ Application.WorksheetFunction.CountIf(Sheets("1").Range("A1:A5000"), Sheets("1").Range("K" & y).Value) > 0 Then arr(y) = "[Таблица1].[Код номенклатуры].&[" & Sheets("1").Range("K" & y).Value & "]" End If Next y Sheets("1").PivotTables("1").PivotFields("[Таблица1].[Код номенклатуры].[Код номенклатуры]").VisibleItemsList = arr End Sub
[/vba]
Спасибо Aleksandr H. и Клубу ПРОграммистов
Помогли решить данную проблему:
[vba]
Код
Sub Макрос1() Dim y As Integer Dim arr(2 To 100) For y = 2 To 100 If Sheets("1").Range("K" & y).Value <> 0 And _ Application.WorksheetFunction.CountIf(Sheets("1").Range("A1:A5000"), Sheets("1").Range("K" & y).Value) > 0 Then arr(y) = "[Таблица1].[Код номенклатуры].&[" & Sheets("1").Range("K" & y).Value & "]" End If Next y Sheets("1").PivotTables("1").PivotFields("[Таблица1].[Код номенклатуры].[Код номенклатуры]").VisibleItemsList = arr End Sub
[/vba]
Спасибо Aleksandr H. и Клубу ПРОграммистовcreyc-alvlad