這是一個突如其來的想法。
衆所周知,在進行報表制作的時候,Excel為我們提供了組合框(有下拉單選功能),列表框(有複選功能)等控件。但是,擁有複選功能的下拉框該如何制作呢?比如下面的例子:
其實列表框可以實現複選功能,但是它比較占位置,如果你的報告在同一個屏幕能夠展示更多的數據肯定是極好的。這也是我想要的。
苦思冥想,終究是無法通過一個控件實現,那麼就多來幾個,通過命令按鈕、列表框、文本框的組合,完美實現擁有複選功能的下拉框。
在這裡列表框的介紹不做說明,最主要的是能夠知道listfillrange為選項字段所在位置(示例中的城市)。如下所示:
按鈕完畢,那麼圖表又如何實現聯動的呢?
将複選框内被選擇的字段放置在單元格内,然後利用公式在數據源中進行匹配判斷即可。
代碼放置在當前活動表格下的VB界面内。
Private Sub ListBox1_Change()
Dim str As String
On Error Resume Next
str = ""
ActiveSheet.Range("b1:b100").Clear '選擇項位置内容清除
Set d = CreateObject("scripting.dictionary") '創建字典
For i = 0 To ListBox1.ListCount - 1 '利用循環判斷是否被選中
If ListBox1.Selected(i) = True Then
d(i) = ListBox1.List(i)
If d.Count = 1 Then
M = ""
Else
M = ";"
End If
str = str & M & ListBox1.List(i)
End If
Next
ActiveSheet.Range("b1").Resize(d.Count) = Application.Transpose(d.items) '選擇項放入當前表B1
TextBox1.Text = str
End Sub
Private Sub CommandButton1_Click()
If CommandButton1.Caption = ">" Then
ActiveSheet.ListBox1.Visible = 1
CommandButton1.Caption = "<"
Else
ActiveSheet.ListBox1.Visible = 0
CommandButton1.Caption = ">"
End If
End Sub
歡迎點擊關注,後續會有更多精彩内容
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!