Я работаю над этим VBA-сценарием Excel, который фильтрует сводную таблицу с указанными c значениями в данном поле сводной таблицы. Тем не менее, мне нужно, чтобы это было более динамично c. Каждый раз, когда мой макрос фильтрует что-то, чего нет в текущем поле Pivot, я получаю сообщение об ошибке. Не могли бы вы, ребята, помочь мне найти решение, которое могло бы обойти эту ошибку?
У меня есть следующий код фильтрации, который прекрасно работает, когда все данные .PivotItems присутствуют в данных, но это меняется от данных к данным, и я не может вводить это вручную каждый раз, чтобы иметь то же самое, что и в данных:
With ActiveSheet.PivotTables("PivotTable3").PivotFields("Dispute ")
'.PivotItems("CA - Carriage").Visible = False
'.PivotItems("Credit").Visible = False
.PivotItems("DOC - Documentation issue").Visible = False
.PivotItems("Paid").Visible = False
.PivotItems("Promise to pay").Visible = False
'.PivotItems("QQ - Quantity Query").Visible = False
.PivotItems("SR - Sales Related").Visible = False
.PivotItems("(blank)").Visible = False
.PivotItems("PT - Payment Terms").Visible = False
.PivotItems("payment in advance").Visible = False
.PivotItems("Bancrupcy").Visible = True
.PivotItems("PO - Purchase Order").Visible = False
.PivotItems("RT - Returns").Visible = False
.PivotItems("to be reconcilied").Visible = False
.PivotItems("Dispute - Resolved").Visible = False
.PivotItems("Follow up ").Visible = False
.PivotItems("escalation").Visible = False
End With
Допустим, ".PivotItems (" escalation "). Visible = False" не присутствует в данных на этот раз, макрос затем выдает ошибку при попытке отфильтровать его. Я думаю, что это глупое решение для фильтрации VBA, оно далеко не надежно. Можете ли вы помочь мне найти более элегантное решение для этого?
Должно быть решение, которое просто предоставляет ".PivotItems", который я хочу показать в фильтре и игнорировать остальные, но до сих пор я не мог точно определить, что Google Мне нужно.
Заранее спасибо!