Добрый день! Я не так давно изучаю vba и столкнулся с проблемой при работе с олап-кубом. Куб содержит артикулы товаров (более 10 000) и постоянно возникает необходимость фильтровать куб только по определенным артикулам. При записи макрорекодором выборки, например, 3-х артикулов код выглядит следующим образом: [vba]
Код
Sub Коды() ActiveSheet.PivotTables("СводнаяТаблица2").PivotFields( _ "[Товарный кл].[Код товара].[Код товара]").VisibleItemsList = Array( _ "[Товарный кл].[Код товара].&[0230405026]", _ "[Товарный кл].[Код товара].&[1100071922]", _ "[Товарный кл].[Код товара].&[1100073043]") End Sub
[/vba] Я решил прописать макрос, который вытаскивает нужные коды из графы F. Макрос проходит по всем артикулам, но фильтр работает только для последнего артикула. Я полагаю, что последняя конструкция поочередно фильтрует по артикулам, но не сохраняет предыдущее условие в фильтре. Т.е. нет накопительного фильтра. Код написал на основании того, что получилось в макрорекодоре (выше). Как возможно скорректировать макрос, чтобы выборка производилась по всем артикулам из диапазона? [vba]
Код
Sub SKU()
Dim MA(2) As Range Dim x As Integer
For x = 0 To 2 Set MA(x) = Range("F" & x + 1) Next x
For x = 0 To 2 ActiveSheet.PivotTables("СводнаяТаблица2").PivotFields( _ "[Товарный кл].[Код товара].[Код товара]").VisibleItemsList = Array("[Товарный кл].[Код товара].&[" & MA(x) & "]") Next x
End Sub
[/vba]
Добрый день! Я не так давно изучаю vba и столкнулся с проблемой при работе с олап-кубом. Куб содержит артикулы товаров (более 10 000) и постоянно возникает необходимость фильтровать куб только по определенным артикулам. При записи макрорекодором выборки, например, 3-х артикулов код выглядит следующим образом: [vba]
Код
Sub Коды() ActiveSheet.PivotTables("СводнаяТаблица2").PivotFields( _ "[Товарный кл].[Код товара].[Код товара]").VisibleItemsList = Array( _ "[Товарный кл].[Код товара].&[0230405026]", _ "[Товарный кл].[Код товара].&[1100071922]", _ "[Товарный кл].[Код товара].&[1100073043]") End Sub
[/vba] Я решил прописать макрос, который вытаскивает нужные коды из графы F. Макрос проходит по всем артикулам, но фильтр работает только для последнего артикула. Я полагаю, что последняя конструкция поочередно фильтрует по артикулам, но не сохраняет предыдущее условие в фильтре. Т.е. нет накопительного фильтра. Код написал на основании того, что получилось в макрорекодоре (выше). Как возможно скорректировать макрос, чтобы выборка производилась по всем артикулам из диапазона? [vba]
Код
Sub SKU()
Dim MA(2) As Range Dim x As Integer
For x = 0 To 2 Set MA(x) = Range("F" & x + 1) Next x
For x = 0 To 2 ActiveSheet.PivotTables("СводнаяТаблица2").PivotFields( _ "[Товарный кл].[Код товара].[Код товара]").VisibleItemsList = Array("[Товарный кл].[Код товара].&[" & MA(x) & "]") Next x