吉米亨德里克斯選單
通常,程式碼放在工作表的模組中。
這是 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