powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA скрипт
9 сообщений из 9, страница 1 из 1
VBA скрипт
    #39488232
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Подскажите пожалуйста, как в скрипте VBA вытащить самый нижний объект "строк", выбранный пользователем в сводной таблице.

Пока получается только вытащить все, ранее не работал с VBA, не совсем понимаю как можно проверить объект к принадлежности строк.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
Sub FInd()
With ActiveSheet.PivotTables("Сводная таблица1")
        For i = 1 To .PivotFields.Count
         MsgBox .PivotFields(i).Name
     
        Next
    End With
End Sub
...
Рейтинг: 0 / 0
VBA скрипт
    #39488346
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таком варианте выводятся то что нужно, но как узнать порядок? т.е. мне нужен самый нижний атрибут, как получить некий индекс?

Код: sql
1.
2.
3.
4.
5.
6.
7.
Sub FInd()
With ActiveSheet.PivotTables("Ñâîäíàÿ òàáëèöà1")
        For i = 1 To .RowFields.Count
            MsgBox .RowFields(i).Name
        Next
    End With
End Sub
...
Рейтинг: 0 / 0
VBA скрипт
    #39488429
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVTВ таком варианте выводятся то что нужно, но как узнать порядок? т.е. мне нужен самый нижний атрибут, как получить некий индекс?

Код: sql
1.
2.
3.
4.
5.
6.
7.
Sub FInd()
With ActiveSheet.PivotTables("Ñâîäíàÿ òàáëèöà1")
        For i = 1 To .RowFields.Count
            MsgBox .RowFields(i).Name
        Next
    End With
End Sub



Убрать цикл и подставить .RowFields.Count вместо i.
...
Рейтинг: 0 / 0
VBA скрипт
    #39488542
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, не совсем то, нужно как то обыграть через "MsgBox .RowFields(i).Position" т.е. вывести имя объекта у которого позиция в сводной таблице = RowFields.Count.

Но пока не нашел как это сделать...
...
Рейтинг: 0 / 0
VBA скрипт
    #39488561
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот таким образом, я получаю корректное значение. Как избавиться от цикла, он тут совсем не к месту?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub FInd()
With ActiveSheet.PivotTables("Сводная таблица1")
     CountRF = .RowFields.Count
     For i = 1 To CountRF
         PositionRF = .RowFields(i).Position
         If PositionRF = CountRF Then
            MsgBox .RowFields(i).Name
         End If
     Next
End With
End Sub
...
Рейтинг: 0 / 0
VBA скрипт
    #39488571
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVT,

Видимо, я плохо объяснил, что имел в виду.

Код: vbnet
1.
MsgBox .RowFields(.RowFields.Count).Name
...
Рейтинг: 0 / 0
VBA скрипт
    #39488593
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неее, все отлично объяснили. Дело в том, что, порядок кривой, к примеру индекс максимальной позиции (он же «.RowFields.Count») не соответствует индексу «.RowFields(i).Position», т.е.:

MsgBox .RowFields(.RowFields.Count).Name

Не всегда возвращает имя самого нижнего элемента, такое ощущение что сортирует по алфовиту. Мой пример работает корректно всегда, но ХЗ как уйти от цикла. Можно как то выдрать Имя строки по номеру "Position"?
...
Рейтинг: 0 / 0
VBA скрипт
    #39488686
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVTНеее, все отлично объяснили. Дело в том, что, порядок кривой, к примеру индекс максимальной позиции (он же «.RowFields.Count») не соответствует индексу «.RowFields(i).Position», т.е.:

MsgBox .RowFields(.RowFields.Count).Name

Не всегда возвращает имя самого нижнего элемента, такое ощущение что сортирует по алфовиту. Мой пример работает корректно всегда, но ХЗ как уйти от цикла. Можно как то выдрать Имя строки по номеру "Position"?

Значит я невнимательно читал :) Тогда боюсь не смогу помочь. Полагаю, что без цикла ни как.
...
Рейтинг: 0 / 0
VBA скрипт
    #39495191
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, а теперь заоблачный вопрос моего не знания VBA


--------------------------------------
При работе с кубом, мне необходимо выполнить сценарий VBA (т.е. макрос) до того момента как Excel отправит запрос к SSAS, это возможно? т.е. мне необходимо установить определенное значение атрибута (фильтр) для корректного расчета меры. Все это делаю по простой причине - в Табулярке нет функции Axis(Axis_Number), приходится выкручиваться....
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA скрипт
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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