Страницы: 1
RSS
Получить значение из PivotItem сводной таблицы без имени таблицы и имени поля, Значение Value возвращает строку типа [Имя таблицы].[Имя поля]&[Значение]
 
Добрый день, подскажите пожалуйста.

У меня есть сводная таблица.
Попытка получить значение из поля дает не значение а строку типа [Имя таблицы].[Имя поля]&[Значение]

Мой код
Код
Sub RefreshListBoxDate()
 Dim pt As PivotTable
 Dim pf As PivotField
 Dim pi As PivotItemsSet pt = Worksheets("Свод_1").PivotTables("СводнаяТаблица2")
Set pf = pt.PivotFields("[tbBasePLBS].[Дата].[Дата]")
Set pi = pf.PivotItems
ListBox3.List = Array()
For i = 1 To pi.Count
MsgBox CStr(i) & ": " & pi(i).Value & ": Visible is " & CStr(pi(i).Visible)
ListBox3.AddItem
ListBox3.List(i - 1, 0) = pi(i).Value 'Тут я поулчаю не чистое значение а еще имя таблицы и поля, что не нужно.
ListBox3.Selected(i - 1) = pi(i).Visible
Next i
End Sub
Изменено: Troglodit - 08.08.2017 13:34:46
 
Доброе время суток.
Цитата
Troglodit написал:
У меня есть сводная таблица
Это не совсем сводная. Она построена по данным OLAP или Power Pivot. Так что вы получаете правильное значение поля, так в этой методике они и описываются. Делайте по InStrRev находите крайний справа символ [, а потом Mid для извлечения собственно значения.
 
Спасибо. Понял, прийдется писать функцию извлечения значения.
Я честно говоря не знаю как отличить таблицу OLAP от обычной. И в чем особенности работы с ними через VBA.

Но это так, подзадача.

Может сможете еще подсказать по главному вопросу ? А то пока никто не смог мне ответить.
См. по ссылке.
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=94471&TI...
Изменено: Troglodit - 08.08.2017 10:24:34
 
Написал функцию. Может кому пригодится. Тема закрыта
Код
Function ExtractValue(iVal As String) As String
Dim iStarPos, iLenght As Integer
iStarPos = InStrRev(iVal, "[") + 1
iLenght = Len(iVal) - iStarPos
ExtractValue = Mid(iVal, iStarPos, iLenght)
End Function
Изменено: Troglodit - 08.08.2017 11:08:50
Страницы: 1
Наверх