|
office2007版本 照样子学着写了添加自定义快捷菜单的代码,正常的msocontrolbutton都能显示,就是添加的combobox无法显示,检查了半天代码也不知道哪里错了,烦请大神指教,谢谢!
以下为在row上面添加的快捷菜单,前两个都能显示,就是第三个“复制工作表”的combobox无法显示出来
- Sub tjlpp()
- On Error Resume Next
- Application.CommandBars("row").Controls("ÎҵIJ˵¥").Delete
- Dim pp, pp1, pp2, i
- Set pp = Application.CommandBars("row").Controls.Add(Type:=msoControlPopup, before:=1)
- With pp
- .Caption = "ÎҵIJ˵¥"
- .BeginGroup = True
- .Visible = True
- .Enabled = True
- End With
- Set pp1 = pp.Controls.Add(before:=1)
- With pp1
- .Caption = "Òƶ¯¹¤×÷±í"
- .FaceId = 12
- .Style = msoButtonIconAndCaption
- ' .OnAction = "ÄãºÃ"
- End With
- Set pp1 = pp.Controls.Add(before:=2)
- With pp1
- .Caption = "¼ôÇй¤×÷±í"
- .FaceId = 12
- .Style = msoButtonIconAndCaption
- ' .OnAction = "ÄãºÃ"
- End With
- Set pp2 = pp.Controls.Add(Type:=msoControlComboBox, before:=3)
- With pp2
- .Caption = "¸´Öƹ¤×÷±í"
- .BeginGroup = True 'Ìí¼Ó·Ö×éÏß
- ' .OnAction = "Ñ¡È¡¹¤×÷±í" 'Ö¸¶¨ÒªÔËÐеĺê
- .Width = 100
- .DropDownWidth = 70
- .Enabled = True
- .Visible = True
- For i = 1 To Sheets.Count
- .AddItem ThisWorkbook.Sheets(i).Name
- Next
- End With
- End Sub
复制代码
Sub tjlpp2()
' On Error Resume Next
' Application.CommandBars("row").Controls("我的菜单").Delete
' On Error GoTo 0
Dim pp, pp1, pp2, i
Set pp = Application.CommandBars("row").Controls.Add(Type:=msoControlPopup, before:=1, temporary:=True)
With pp
.Caption = "我的菜单"
.BeginGroup = True
.Visible = True
.Enabled = True
End With
Set pp1 = pp.Controls.Add(before:=1)
With pp1
.Caption = "移动工作表"
.FaceId = 12
.Style = msoButtonIconAndCaption
' .OnAction = "你好"
End With
Set pp1 = pp.Controls.Add(before:=2)
With pp1
.Caption = "剪切工作表"
.FaceId = 12
.Style = msoButtonIconAndCaption
' .OnAction = "你好"
End With
Set pp1 = pp.Controls.Add(Type:=msoControlPopup, before:=3)
With pp1
.Caption = "复制工作表"
' .BeginGroup = True '添加分组线
' .OnAction = "选取工作表" '指定要运行的宏
' .Width = 100
' .DropDownWidth = 70
' .Enabled = True
' .Visible = True
' For i = 1 To Sheets.Count
' .AddItem Sheets(i).Name
' Next
For i = 1 To Sheets.Count
Set pp2 = pp1.Controls.Add(before:=1)
With pp2
.Caption = Sheets(i).Name
End With
Next i
End With
End Sub
这样凑合,行吗?
|
|