Удалить срез временной шкалы сводной таблицы Excel

#excel #vba

#excel #vba

Вопрос:

У меня есть следующий код, который работает для удаления всех срезов сводной таблицы с определенного листа. Однако, когда дело доходит до среза временной шкалы (xltimeline), он не удаляет его.

 For Each Shape In Worksheets(SheetName).Shapes
    If Shape.Type = msoSlicer Then Shape.Delete
Next Shape
 

Есть мысли о том, почему он не распознает срез временной шкалы как msoSlicer и не удаляет его? Я не уверен, как классифицировать временную шкалу, как будто это не msoSlicer.

Комментарии:

1. Можете ли вы проверить Shape.Type использование этой конкретной формы Debug.Print Shape.Type и сообщить мне, так ли это на самом деле msoSlicer ?

2. насколько я понимаю, временная шкала имеет тип msoShapeTypeMixed

3. @JvdV возвращает значение -2 в качестве shape.type

4. Ну вот, это значение означает, что это действительно смешанный тип msoShapeTypeMixed, поэтому он не будет удален. Смотрите здесь

5. Спасибо вам обоим за вашу помощь! Это сработало!