吉米亨德里克斯菜单
通常,代码放在工作表的模块中。
这是 Worksheet_SelectionChange 事件,每次在活动工作表中选择不同的单元格时都会触发该事件。你可以从代码窗口上方的第一个下拉菜单中选择工作表,然后从旁边的下拉菜单中选择“Selection_Change”。在这种情况下,每次激活单元格时,代码都会重定向到组合框的代码。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ComboBox1_Change
End Sub
这里,专用于 ComboBox 的例程默认编码为 Change 事件。在其中,有一个固定的数组,填充了所有选项。不是最后一个位置的 CLEAR 选项,它将用于清除单元格的内容。然后将数组传递给组合框并传递给执行工作的例程。
Private Sub ComboBox1_Change()
Dim myarray(0 To 5)
myarray(0) = "Hey Joe"
myarray(1) = "Little Wing"
myarray(2) = "Voodoo Child"
myarray(3) = "Purple Haze"
myarray(4) = "The Wind Cries Mary"
myarray(5) = "CLEAR"
With ComboBox1
.List = myarray()
End With
FillACell myarray()
End Sub
数组将传递给使用歌曲名称或空值填充单元格的例程以清空它们。首先,整数变量被赋予用户选择的位置的值。然后,将组合框移动到用户激活的单元格的左上角,并调整其尺寸以使体验更加流畅。然后在活动单元中为整数变量中的位置分配值,该变量跟踪用户选择。如果用户从选项中选择 CLEAR,则清空单元格。
对于每个选定的细胞重复整个程序。
Sub FillACell(MyArray As Variant)
Dim n As Integer
n = ComboBox1.ListIndex
ComboBox1.Left = ActiveCell.Left
ComboBox1.Top = ActiveCell.Top
Columns(ActiveCell.Column).ColumnWidth = ComboBox1.Width * 0.18
ActiveCell = MyArray(n)
If ComboBox1 = "CLEAR" Then
Range(ActiveCell.Address) = ""
End If
End Sub