Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Фильтр в Олап - VBA - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Фильтр в Олап - VBA (Макросы/Sub)
Фильтр в Олап - VBA
Sparta Дата: Вторник, 12.09.2017, 22:48 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Я не так давно изучаю 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
    
End Sub
[/vba]

Автор - Sparta
Дата добавления - 12.09.2017 в 22:48
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Фильтр в Олап - VBA (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!