Свойства модификатора слайсера - PullRequest
1 голос
/ 09 июля 2019

Попытка использовать VBA для создания сводной таблицы и связанных срезов.Я могу сгенерировать таблицу и слайсеры просто отлично, но я получаю ошибку 5, когда я пытаюсь изменить свойства слайсера.Ошибка в строке «С».Что у меня сейчас не так?

Попытка изменить значения имени на фактический Slicer_ShipQuantity.И посмотрел вокруг онлайн, но я не вижу никаких решений.Тот, который я нашел, был с этого сайта, https://www.microsoft.com/en-us/microsoft-365/blog/2011/01/27/control-slicers-by-using-vba/, однако, это не работает, когда я использую его / копирую его.

'This works to create slicer
ActiveWorkbook.SlicerCaches.Add2(ActiveSheet.PivotTables("MasterPivot"), "ShipQuantity") _
        .Slicers.Add ActiveSheet, , "ShipQuantity", "ShipQuantity", _
        RowLocation, ColumnLocation, width, Height

'this does not work to modify slicer settings. And I have no idea why.
With ActiveWorkbook.SlicerCaches("ShipQuantity").Slicers("ShipQuantity")
        .NumberOfColumns = 3
        .RowHeight = 13
        .ColumnWidth = 70
End With

Ожидается получить кодизменить отображаемый слайсер, без каких-либо ошибок появляются.Пожалуйста и спасибо!

1 Ответ

2 голосов
/ 09 июля 2019

Slicers.Add возвращает ссылку на добавленный слайсер, поэтому вы можете использовать эту ссылку напрямую

https://docs.microsoft.com/en-us/office/vba/api/excel.slicers.add

Dim slcr

Set slcr = ActiveWorkbook.SlicerCaches.Add2(ActiveSheet.PivotTables("MasterPivot"), "ShipQuantity") _
        .Slicers.Add(ActiveSheet, , "ShipQuantity", "ShipQuantity", _
        RowLocation, ColumnLocation, width, Height)


With slcr
        .NumberOfColumns = 3
        .RowHeight = 13
        .ColumnWidth = 70
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...