|
楼主 |
发表于 2009-3-19 09:24
|
显示全部楼层
第7部分 菜单和工具栏
技巧87 使用右键菜单制作数据有效性
在工作表中输入数据时可以使用自定义右键菜单制作数据有效性,如下面的代码所示。- #001 Sub Mycell()
- #002 Dim arr As Variant
- #003 Dim i As Integer
- #004 Dim Mycell As CommandBar
- #005 On Error Resume Next
- #006 Application.CommandBars("Mycell").Delete
- #007 arr = Array("经理室", "办公室", "生技科", "财务科", "营业部")
- #008 Set Mycell = Application.CommandBars.Add("Mycell", 5)
- #009 For i = 0 To 4
- #010 With Mycell.Controls.Add(1)
- #011 .Caption = arr(i)
- #012 .OnAction = "MyOnAction"
- #013 End With
- #014 Next
- #015 End Sub
- #016 Sub MyOnAction()
- #017 ActiveCell = Application.CommandBars.ActionControl.Caption
- #018 End Sub
复制代码 代码解析:
Mycell过程创建自定义的右键菜单,请参阅技巧86 。
MyOnAction过程是点击自定义右键菜单所运行的过程,将所选右键菜单的名称写入活动单元格。
为了使自定义的右键菜单在Sheet1工作表的特定区域中显示,需要在VBE中双击Sheet1表后写入下面的代码。- #001 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
- #002 If Target.Column = 2 Then
- #003 Call Mycell
- #004 Application.CommandBars("Mycell").ShowPopup
- #005 Cancel = True
- #006 End If
- #007 End Sub
复制代码 代码解析:
工作表的BeforeRightClick事件过程,在右键单击工作表时,将“Mycell”命令栏作为右键快捷菜单,在当前光标位置显示,请参阅技巧86 。
在工作表的B列中点击右键结果如图所示。
|
|