tft每日頭條

 > 生活

 > 如何用代碼模拟選中複選框

如何用代碼模拟選中複選框

生活 更新时间:2025-04-30 08:40:08

這是一個突如其來的想法。

衆所周知,在進行報表制作的時候,Excel為我們提供了組合框(有下拉單選功能),列表框(有複選功能)等控件。但是,擁有複選功能的下拉框該如何制作呢?比如下面的例子:

如何用代碼模拟選中複選框(巧妙制作擁有複選功能的下拉框按鈕)1

其實列表框可以實現複選功能,但是它比較占位置,如果你的報告在同一個屏幕能夠展示更多的數據肯定是極好的。這也是我想要的。

苦思冥想,終究是無法通過一個控件實現,那麼就多來幾個,通過命令按鈕、列表框、文本框的組合,完美實現擁有複選功能的下拉框。

如何用代碼模拟選中複選框(巧妙制作擁有複選功能的下拉框按鈕)2

在這裡列表框的介紹不做說明,最主要的是能夠知道listfillrange為選項字段所在位置(示例中的城市)。如下所示:

如何用代碼模拟選中複選框(巧妙制作擁有複選功能的下拉框按鈕)3

按鈕完畢,那麼圖表又如何實現聯動的呢?

如何用代碼模拟選中複選框(巧妙制作擁有複選功能的下拉框按鈕)4

将複選框内被選擇的字段放置在單元格内,然後利用公式在數據源中進行匹配判斷即可。

如何用代碼模拟選中複選框(巧妙制作擁有複選功能的下拉框按鈕)5

代碼放置在當前活動表格下的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每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved