Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / pivotitems.names / 8 сообщений из 8, страница 1 из 1
17.11.2010, 16:20
    #36962091
Игорь86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pivotitems.names
Подскажите, пожалуйста

Есть кусок кода
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
TempSheet.PivotTables("3").PivotFields("UC").CurrentPage = "(All)"
With TempSheet.PivotTables("Ñâîä3").PivotFields("UC")
    For Counter =  1  To .PivotItems.Count
        If .PivotItems(Counter).Name = "AAAA" Then
            .PivotItems(Counter).Visible = True
        Else
            .PivotItems(Counter).Visible = False
        End If
    Next
End With

Делается сводная таблица и если нету AAAA то курсор попадает на FALSE и выдается ошибка.

как проверить наличие каких-либо значений в PivotItems.Names?
...
Рейтинг: 0 / 0
17.11.2010, 16:36
    #36962138
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pivotitems.names
Игорь86как проверить наличие каких-либо значений в PivotItems.Names?
либо перебрать коллекцию в цикле, но проще поставить On Error перед этой строкой
...
Рейтинг: 0 / 0
17.11.2010, 16:41
    #36962153
Игорь86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pivotitems.names
Shocker.Pro,

Мне нужно чтобы он проверил items и если такой отсутствует, то уйти на следующую проверку

кроме как такого решения
Код: plaintext
1.
2.
3.
Else
        GoTo flag    '.PivotItems(Counter).Visible = False
        End If

не знаю...
может есть другое?
...
Рейтинг: 0 / 0
17.11.2010, 16:43
    #36962158
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pivotitems.names
Игорь86,

Ничего не ясно из Вашего описания.
Если я верно понял суть проблемы, то когда в поле "UC" нет ни одного итема АААА,то вы делаете visible false всей коллекции и выпадает ошибка т.к. Pivot не разрешает прятать все элементы. Так?

Если да, то чтобы поправить код нужно понять, что именно Вы хотите делать когда в коллекции итемов нет ни одного АААА
...
Рейтинг: 0 / 0
17.11.2010, 17:51
    #36962354
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pivotitems.names
Примитивно, но должно работать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    Dim bYes As Boolean
    TempSheet.PivotTables("3").PivotFields("UC").CurrentPage = "(All)"
    With TempSheet.PivotTables("Naia3").PivotFields("UC")
        For Counter =  1  To .PivotItems.Count
            If .PivotItems(Counter).Name = "AAAA" Then bYes = True
            .PivotItems(Counter).Visible = True
        Next
        If bYes Then
            For Counter =  1  To .PivotItems.Count
                If .PivotItems(Counter).Name <> "AAAA" Then .PivotItems(Counter).Visible = False
            Next
        Next
    End With
...
Рейтинг: 0 / 0
17.11.2010, 18:19
    #36962416
Игорь86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pivotitems.names
Shamanus,

В коде идет проверка на name AAAA
но когда отрабатывает скрипт и создает сводную таблицу, то в каких то файлах это может быть а в каких то АААА отсутствует

Так вот, как сделать так, чтобы проверить item и если там нету AAAA - обойти это
...
Рейтинг: 0 / 0
17.11.2010, 18:21
    #36962421
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pivotitems.names
Игорь86,

т.е. если я верно понял, когда в Names нет AAAA нужно оставить Visible ВСЕ итемы данного Fields?
...
Рейтинг: 0 / 0
17.11.2010, 22:10
    #36962722
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pivotitems.names
Хотя мой код можно сделать чуть проще:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    Dim bYes As Boolean
    TempSheet.PivotTables("3").PivotFields("UC").CurrentPage = "(All)"
    With TempSheet.PivotTables("Naia3").PivotFields("UC")
        For Counter =  1  To .PivotItems.Count
            If .PivotItems(Counter).Name = "AAAA" Then bYes = True:Exit For
        Next
        If bYes Then
            For Counter =  1  To .PivotItems.Count
                If .PivotItems(Counter).Name <> "AAAA" Then .PivotItems(Counter).Visible = False
            Next
        Next
    End With
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / pivotitems.names / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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