powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / В фильтре не меняется элемент
9 сообщений из 9, страница 1 из 1
В фильтре не меняется элемент
    #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
В фильтре не меняется элемент
    #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
В фильтре не меняется элемент
    #39486838
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidy,

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

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

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

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

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


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



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


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