Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / В фильтре не меняется элемент / 9 сообщений из 9, страница 1 из 1
11.07.2017, 15:31
    #39486630
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В фильтре не меняется элемент
Здравствуйте!

Формирую сводную таблицу, подключенная к OLAP. В фильтр поместил поле "Код ТТ". В фильтре выбрал одну ТТ

Включил запись макроса. В фильтре выбрал другую ТТ. Выключил запись макроса. В итоге получилась такой макрос.

Код: vbnet
1.
2.
3.
ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("[Торговые точки].[Код ТТ].[Код ТТ]").ClearAllFilters
ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("[Торговые точки].[Код ТТ].[Код ТТ]").CurrentPage = _
        "[Торговые точки].[Код ТТ].&[000000002]"



Но если запустить этот же макрос, то на второй строке появляется ошибка
"Run-time error '1004'
Нельзя установить свойство CurrentPage класса PivotField"

Почему так? Так же макрорекордер записал. Как правильно написать?



И еще.

Во время останова заметил интересную вещь. В сводной таблице присутствует фильтр с выбранным элементом. Но в скриншоте видно, что якобы у поля "Торговые точки].[Код ТТ].[Код ТТ]" отсутствуют отобранные ТТ. Почему так?
...
Рейтинг: 0 / 0
11.07.2017, 16:51
    #39486782
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В фильтре не меняется элемент
ferzmikkЗдравствуйте!

Формирую сводную таблицу, подключенная к OLAP. В фильтр поместил поле "Код ТТ". В фильтре выбрал одну ТТ

Включил запись макроса. В фильтре выбрал другую ТТ. Выключил запись макроса. В итоге получилась такой макрос.

Код: vbnet
1.
2.
3.
ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("[Торговые точки].[Код ТТ].[Код ТТ]").ClearAllFilters
ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("[Торговые точки].[Код ТТ].[Код ТТ]").CurrentPage = _
        "[Торговые точки].[Код ТТ].&[000000002]"



Но если запустить этот же макрос, то на второй строке появляется ошибка
"Run-time error '1004'
Нельзя установить свойство CurrentPage класса PivotField"

Почему так? Так же макрорекордер записал. Как правильно написать?



И еще.

Во время останова заметил интересную вещь. В сводной таблице присутствует фильтр с выбранным элементом. Но в скриншоте видно, что якобы у поля "Торговые точки].[Код ТТ].[Код ТТ]" отсутствуют отобранные ТТ. Почему так?

Возможно Вы запускаете макрос в то время, как другой лист, где нет сводной таблицы, активен. Этого можно избежать строго задав в коде "нужный" лист, как например:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Option Explicit

Sub MyPivotFilter()

Dim wb As Workbook
Dim sh As Worksheet
Dim pf As PivotField

Set wb = ThisWorkbook
Set sh = wb.Sheets(1)
Set pf = sh.PivotTables("PivotTable1").PivotFields("A")

pf.CurrentPage = "1"

End Sub
...
Рейтинг: 0 / 0
11.07.2017, 17:46
    #39486838
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В фильтре не меняется элемент
iMrTidy,

Все равно такая же ошибка
...
Рейтинг: 0 / 0
11.07.2017, 18:01
    #39486846
f
f
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В фильтре не меняется элемент
Сводная таблица точно имеет имя СводнаяТаблица1? Имена полей правильно указаны? Пустых имен в источнике данных нет?
...
Рейтинг: 0 / 0
11.07.2017, 18:03
    #39486849
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В фильтре не меняется элемент
ferzmikkiMrTidy,

Все равно такая же ошибка

Давайте пример, будем смотреть.
...
Рейтинг: 0 / 0
11.07.2017, 18:38
    #39486871
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В фильтре не меняется элемент
FСводная таблица точно имеет имя СводнаяТаблица1?Да
Имена полей правильно указаны?Да
Пустых имен в источнике данных нет?Полей с пустыми именами нету
...
Рейтинг: 0 / 0
11.07.2017, 19:06
    #39486897
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В фильтре не меняется элемент
iMrTidyferzmikkiMrTidy,

Все равно такая же ошибка

Давайте пример, будем смотреть.
Сам excel-файл то пустой. Только вставлена сводная таблица со списком полей из OLAP.
...
Рейтинг: 0 / 0
11.07.2017, 19:16
    #39486905
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В фильтре не меняется элемент
Я нашел. Оказывается надо было писать не так
Код: vbnet
1.
.PivotFields("[Торговые точки].[Код ТТ].[Код ТТ]").CurrentPage = "[Торговые точки].[Код ТТ].&[000000001]"


а так
Код: sql
1.
.PivotFields("[Торговые точки].[Код ТТ].[Код ТТ]").CurrentPageName = "[Торговые точки].[Код ТТ].&[000000001]"



Только вот странно почему так получается. Microsoft 2013 при включенном макрорекордере записывает как CurrentPage, но если запускать - то выдает ошибку. А Microsoft 2010 записывает как CurrentPageName.
...
Рейтинг: 0 / 0
11.07.2017, 20:21
    #39486942
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В фильтре не меняется элемент
И еще. Это была сводная таблица, подключенная к OLAP. А если исходные данные находятся скажем на другом листе, то CurrentPage работает.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / В фильтре не меняется элемент / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]