excel 下拉選單 複選
Step 1 在功能列「開發人員」中控制項選擇「清單方塊(ActiveX 控制項)」,並繪製
找不到「開發人員」?點我看教學
Step 2 在功能列「開發人員」選擇「屬性」
Step 3 在「ListFillRange」中輸入清單選項內容儲存格範圍
Step 4 在「ListStyle」中選擇「1-fmListStyleOption」
Step 5 在「MultiSelect」中選擇「1-fmMultiSelectMulti」
Step 6 在清單點擊滑鼠「右鍵」,選擇「檢視程式碼」
Step 7 輸入程式碼,將下方程式碼複製並貼上,並依照個人需求更改備註中的位置
Private Sub ListBox1_Change()
If Reload Then Exit Sub
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then t = t & ";" & ListBox1.List(i) '分號「;」為間隔多個選項間的符號,可自行設定
Next
ActiveCell = Mid(t, 2)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ListBox1
If ActiveCell.Column = 2 And ActiveCell.Row > 1 Then '儲存格「欄」為「2」,依照自己的需求修改
j = ActiveCell.Value
Reload = True
For i = 0 To .ListCount - 1
If InStr(j, .List(i)) Then
.Selected(i) = True
Else
.Selected(i) = False
End If
Next
Reload = False
.Top = ActiveCell.Top + ActiveCell.Height
.Left = ActiveCell.Left
.Width = ActiveCell.Width
.Visible = True
Else
.Visible = False
End If
End With
End Sub
【教學】Excel 如何製作能夠複選的下拉選單?跟著步驟馬上完成!
您好
請問如果要在同一個WORKSHEET用兩種下拉複選
程式碼需要如何修改
您好,重複相同動作,將程式碼複製貼上,並將程式中有 ListBox1 的地方都更改為 ListBox2 就可以了!
您好,將程式碼複製貼上,也將程式中有 ListBox1 的地方都更改為 ListBox2 了
但偵錯編譯時,會表示找不到第二次複製貼上的 Worksheet_SelectionChange
請問要如何解決
您好,將兩個ListBox的Worksheet_SelectionChange整合在一起,分別是With ListBox1…….End with 以及 With ListBox2……..End with 即可
您好,
我使用vbCrLf代替分號來間隔多個選項,
但會造成勾選後第一個選項前多出一行空白,
程式碼需要如何修改?
您好,將程式碼 ActiveCell = Mid(t, 2) 修改為 ActiveCell = Mid(t, 3) 即可
您好,將程式碼複製貼上,也將程式中有 ListBox1 的地方都更改為 ListBox2 了
但偵錯編譯時,會表示找不到第二次複製貼上的 Worksheet_SelectionChange
請問要如何解決