Я пытаюсь сделать свое собственное сквозное действие для сводной таблицы с помощью VBA. Действие будет вызываться из контекстного меню сводной таблицы с Дополнительные действия. Я хочу поставить свою кнопку под Дополнительные действия управление Контекстное меню сводной таблицы панель команд. Дело в том, что по умолчанию Дополнительные действия уже содержит (никаких действий не определено) шт. Итак, я хочу удалить это (никаких действий не определено) после добавления моей кнопки, но ничего не работает. Я не могу даже изменить какое-либо свойство (никаких действий не определено) управление, например, надпись, видимая и т. Д. В чем может быть причина, и каково обходное решение? Вот мой код до сих пор (вы можете поместить его под Workbook_SheetBeforeRightClick, к примеру, а затем проверить с какой-либо сводной таблицы в этой книге):Почему я не могу редактировать элемент управления из командной строки в Excel 2013 с помощью VBA?
Dim PCell As PivotCell
Dim PComBar As CommandBar
Dim PControl As CommandBarControl
Dim DControl As CommandBarControl
Dim BControl As CommandBarControl
Dim IsFromPivotTable As Boolean
IsFromPivotTable = False
On Error GoTo NotFromPivot
Set PCell = Target.PivotCell
IsFromPivotTable = True
NotFromPivot:
On Error GoTo 0
If IsFromPivotTable Then
Set PComBar = Application.CommandBars("PivotTable Context Menu")
Set PControl = PComBar.Controls("Additional Actions")
On Error Resume Next
With PControl
Call .Controls("My Drillthrough Action").Delete
.Enabled = True
End With
On Error GoTo 0
Set DControl = PControl.Controls.Add(Type:=msoControlButton, Temporary:=True, Before:=1)
With DControl
.Style = msoButtonIconAndCaption
.Caption = "My Drillthrough Action"
.FaceId = 786
End With
On Error Resume Next
Set BControl = PControl.Controls("(No Actions Defined)")
With BControl 'This does not work and throws error if do not suppress with On Error
.Enabled = True
.Visible = False
.Caption = "Hello there"
End With
On Error GoTo 0
End If
Итак, последний раздел С BControl ... End With не работает вообще, и выдает сообщение об ошибке «Ошибка автоматизации». Я могу успешно отредактировать Дополнительные действия сам, как включить его, но я хотел бы избавиться от (никаких действий не определено) контролировать или заменить его своим. Обратите внимание, что Вызов. Контроль ("(никаких действий не определено)"). Удалить тоже не работает. Как я могу это сделать? Я попытался решить проблему, но не повезло ...
На самом деле, я могу добавить свою кнопку в «Дополнительные действия», и она отлично работает. Я не могу удалить уже существующий элемент по умолчанию "(No Actions Defined)" оттуда. – Oleksandr
Прости, я вижу, вот что ты сказал. –