日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

什么?多選下拉菜單!安排得妥妥滴!|Excel174

 我愛學(xué)Excel 2023-08-22 發(fā)布于湖北
最近在回答小伙伴問題的時(shí)候,發(fā)現(xiàn)大家已經(jīng)不滿足于簡單的單選下拉菜單了,有小伙伴提出如何制作多選下拉菜單,這是個(gè)極好的問題啊,今天就來幫忙答疑解惑。

圖片

如上圖所示,興趣愛好一列可以選擇多個(gè)選項(xiàng),并且選擇后自動(dòng)填入單元格,每個(gè)選項(xiàng)之間用分號(hào)自動(dòng)分隔,選擇單元格時(shí)右側(cè)自動(dòng)彈出下拉菜單。

要實(shí)現(xiàn)這個(gè)效果,自然不是簡單的Excel界面操作就能完成的,需要使用到控件和VBA代碼。不過別擔(dān)心,代碼準(zhǔn)備好了,只要大家按照步驟操作,準(zhǔn)??梢詫?shí)現(xiàn)。

一、插入列表框

選擇【開發(fā)工具】選項(xiàng)卡,點(diǎn)擊【插入】,選擇列表框,具體操作參見動(dòng)圖演示:

圖片


二、復(fù)制粘貼代碼

工作表標(biāo)簽右擊鼠標(biāo),選擇查看代碼,粘貼下面的代碼。具體操作參見動(dòng)圖演示:

圖片

代碼如下:

Private Sub ListBox1_Change()

    If Reload Then Exit Sub

    For i = 0 To ListBox1.ListCount - 1

        If ListBox1.Selected(i) = True Then t = t & ";" & Trim(ListBox1.List(i))

    Next

    ActiveCell = Mid(t, 2)

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    With ListBox1

        If ActiveCell.EntireRow.Range("a1") <> "" And ActiveCell.Column = 5 And ActiveCell.Row > 1 Then

            t = ActiveCell.Value

            Reload = True

            For i = 0 To .ListCount - 1

                If InStr(t, .List(i)) Then

                    .Selected(i) = True

                Else

                    .Selected(i) = False

                End If

            Next

            Reload = False

            .MultiSelect = fmMultiSelectMulti

            .ListStyle = fmListStyleOption

            .ListFillRange = "sheet2!a2:a" & Sheet2.Cells(1, 1).End(xlDown).Row

            .Top = ActiveCell.Offset(0, 1).Top

            .Left = ActiveCell.Offset(0, 1).Left

            .Width = ActiveCell.Width

            .Height = ActiveCell.Height * 6

            .Visible = True

        Else

            .Visible = False

        End If

    End With

End Sub



三、測試運(yùn)行

點(diǎn)擊【開發(fā)工具】選項(xiàng)卡,取消設(shè)計(jì)模式,嘗試一下菜單是否可以正常顯示。

圖片

四、代碼調(diào)整

這里的菜單應(yīng)用在Sheet1工作表中的E列,其它列點(diǎn)擊鼠標(biāo)是沒有這個(gè)效果的。并且菜單列表放置在另外一個(gè)工作表Sheet2的A列。

圖片


如果大家的工作表名稱和列位置與案例不一致,就需要對代碼做微調(diào),調(diào)整方法如下:

圖片

① IF 語句需要滿足三個(gè)條件。第一個(gè)是活動(dòng)單元格所在行的第一個(gè)單元格不為空,第二個(gè)是活動(dòng)單元格所在列為第五列,第三個(gè)條件是活動(dòng)單元格所在的行大于1,只有這三個(gè)條件同時(shí)滿足才能應(yīng)用下拉菜單。

如果大家下拉菜單應(yīng)用的位置和案例不同,需要進(jìn)行相應(yīng)的調(diào)整。

② 這里用來設(shè)置下拉菜單的數(shù)據(jù)源。工作表2的a2單元格到最后一個(gè)非空單元格,如果你的工作表不是sheet2,數(shù)據(jù)源的范圍也不同,也是要做相應(yīng)調(diào)整的。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多