powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / pivotitems.names
8 сообщений из 8, страница 1 из 1
pivotitems.names
    #36962091
Игорь86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, пожалуйста

Есть кусок кода
Код: 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
pivotitems.names
    #36962138
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь86как проверить наличие каких-либо значений в PivotItems.Names?
либо перебрать коллекцию в цикле, но проще поставить On Error перед этой строкой
...
Рейтинг: 0 / 0
pivotitems.names
    #36962153
Игорь86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

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

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

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

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

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

Код: 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
pivotitems.names
    #36962416
Игорь86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shamanus,

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

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

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

Код: 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
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / pivotitems.names
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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