感 謝 2017再見,,2018我來了!我的Excel繼續(xù)與您每天不見不散,! 關(guān) 注 村長前面跟大家分享過Excel下拉菜單的制作,,但是那些數(shù)據(jù)有效性制作的下拉菜單都是只能單選,如下動畫: 假如我們需要做多選下拉菜單,,又該如何實現(xiàn)呢,? 效果請看下面動畫: 實現(xiàn)步驟: 第1步:Sheet1表中插入代碼,,如下圖 代碼如下: 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 = 1 And ActiveCell.Row > 1 Then t = ActiveCell.Value ReLoad = True '如果是根據(jù)單元格的值修改列表框,則暫時屏蔽listbox的change事件,。 For i = 0 To .ListCount - 1 '根據(jù)活動單元格內(nèi)容修改列表框中被選中的內(nèi)容 If InStr(t, .List(i)) Then .Selected(i) = True Else .Selected(i) = False End If Next ReLoad = False .Top = ActiveCell.Top ActiveCell.Height '以下語句根據(jù)活動單元格位置顯示列表框 .Left = ActiveCell.Left .Width = ActiveCell.Width .Visible = True Else .Visible = False End If End With End Sub 第2步:Sheet2表中插入代碼,,如下圖 代碼如下: Private Sub Worksheet_Change(ByVal Target As Range) Sheets('Sheet1').ListBox1.ListFillRange = 'data!a1:a' & Cells(1, 1).End(xlDown).Row End Sub 第3步:插入模塊,然后插入代碼,,如下圖: 代碼如下: Public ReLoad As Boolean '開關(guān)listbox的change事件 注明: 以上代碼并非村長所寫,,來源于EH藍(lán)橋玄霜大神所寫,向大神致敬,! |
|