|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.11.2011, 21:45 | #1 |
Пользователь
Регистрация: 18.04.2008
Сообщений: 41
|
Множественный выбор в сводной таблице OLAP макросом
Люди добрые, помогите решить проблему!
Есть OLAP-куб, к сводной таблице которого в Excel обращается макрос. В исполнении макрорекордера этот запрос выглядит так: Sub Макрос() With ActiveSheet.PivotTables("СводнаяТаб лица1").PivotFields("[Time].[Week]") .CubeField.EnableMultiplePageItems = True .AddPageItem "[Time].[Week].&[2.01048E5]", True .AddPageItem "[Time].[Week].&[2.01049E5]" .AddPageItem "[Time].[Week].&[2.0105E5]" '(и так далее...) End With End Sub То есть по неделям задается множественный выбор недель, что визуализируется через проставление галочек в выпадающем списке поля в сводной в измерении "Неделя", находящегося в поле фильтров. Задача в том, что необходим макрос, который выбирал бы в сводной таблице OLAP-куба в указанном измерении "Неделя" значениz, список которых расположен в Листе1 в столбце A:A. Загвоздка в том, что количество требуемых значений для выбора каждый раз разное (когда 3 недели, когда 5 и т.д.), но все их значения существуют в списке значений OLAP-куба. У меня получаются только циклы с выбором 1-го значения, а вот как припаять туда возможность выбора множества значений - не могу понять. Пока что смог сваять только вот это: Sub УстановитьНеделю() Dim Nedelya As String ' значение, выбираемое в списке OLAP, по логике их должно быть множество Dim x As Integer ' Номер строки проверяемого значения в столбце А Dim KolvoZnach As Integer ' кол-во проверяемых значений в столбце A KolvoZnach = 10000 'выбираем ячейку в OLAP, чтобы активизировать OLAP-куб Sheets("Куб").Activate Sheets("Куб").Cells(10,8).Select With ActiveWorkbook.Worksheets("Куб").Pi votTables("СводнаяТаблица1").PivotF ields("[Time].[Week]") .CubeField.EnableMultiplePageItems = True For x = 1 To KolvoZnach If Sheets("Лист1").Cells(x, 1) <> "" Then Nedelya = Sheets("Лист1").Cells(x, 1).Value .AddPageItem "[Time].[Week].&[" & Nedelya & "]", True End If Next x 'Вот тут и загвоздка: как сделать чтобы макрос оставлял уже выбранное значение и просто добавлял следующее??? End With End Sub Помогите, пожалуйста! |
12.11.2011, 23:55 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
так не прокатит?
Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
13.11.2011, 09:31 | #3 | |
Пользователь
Регистрация: 18.04.2008
Сообщений: 41
|
Цитата:
Разве не так? А нужно чтобы он уже ставил и первое, и второе значение в сводную. |
|
14.11.2011, 10:41 | #4 |
Пользователь
Регистрация: 18.04.2008
Сообщений: 41
|
Неужели никто не может подсказать алгоритм?
Добрые люди, ну помогите советом! Оч надо... |
14.11.2011, 10:51 | #5 |
Пользователь
Регистрация: 18.04.2008
Сообщений: 41
|
Все заработало, IgorGO, Ваш код как раз правильный, это я тупил.
Еще раз большое Спасибо!!! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выбор периода в сводной таблице | mrs.petrushina | Microsoft Office Excel | 2 | 08.03.2011 21:31 |
множественный выбор в dbgrid | IvanKonst | БД в Delphi | 7 | 03.09.2010 16:27 |
множественный выбор | dimast_bl_y | Microsoft Office Access | 1 | 09.07.2010 16:28 |
множественный выбор в cxGrid | ~=DEN=~ | Общие вопросы Delphi | 1 | 20.05.2010 10:17 |
макросом обновить диапазон сводной | Dorvir | Microsoft Office Excel | 4 | 28.09.2008 23:28 |