2
我正試圖通過VBA爲我的數據透視表創建自己的鑽取操作。 該操作將從數據透視表的上下文菜單中調用,其中附加操作。 我想把我的按鈕放在附加動作控制數據透視表上下文菜單命令欄。 重點在於默認附加動作已包含(無操作定義)項目。 所以,我想刪除這個(沒有操作定義)添加我的按鈕後,但沒有任何工作。 我甚至不能更改(未定義任何操作)控件的任何屬性,如標題,可見等。 可能是什麼原因,以及解決方法是什麼? 這裏是我到目前爲止的代碼(你可以把它Workbook_SheetBeforeRightClick下,例如,然後用任何數據透視表在工作簿測試):爲什麼我無法使用VBA在Excel 2013中編輯命令欄控件?
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
所以,最後一節隨着B控制...結束與根本不起作用,並引發錯誤「自動化錯誤」。 我可以成功編輯其他操作本身,就像啓用它,但我想擺脫(無操作定義)控制,或用我自己的替換它。 請注意,調用.Controls(「(無操作定義)」)刪除也不起作用。 我該怎麼做? 我試圖谷歌的問題,但沒有運氣...
實際上,我可以將我的按鈕添加到「其他操作」,它工作正常。我無法從那裏刪除已有的默認項目「(沒有操作定義)」。 – Oleksandr
對不起,我現在看到這就是你說的。 –