excel图表制作:创建级联列表框

时间:2022-09-13 01:55:37 

本文利用excel图表记录集技巧,创建级联列表框。

示例效果如下图1所示。

excel图表制作:创建级联列表框

图1

正如上图1所演示的,创建的一组列表框-Region,Market和State可以联动工作。也就是说,如果选择列表框Region中的某项,那么列表框Market和State仅显示在所选择的Region项中与该项关联的值。同样,选择列表框Market中的某项,列表框State中仅显示与Market项中与该项关联的值。

解决方法

使用ADO记录集为子列表框提取记录,使用父列表框的值作为条件。在这种情况下,Region和Markets都是父列表框,因为它们影响如何提供下一级的值。Market和State作为子列表框,因为它们的值取决于其上一级列表框。

在本示例中,创建一个函数,接受子列表框作为其参数,然后使用该列表框判断提取什么数据以及填充哪个列表框。

打开VBE,插入一个标准模块,输入下列代码:

Function CascadeChild(TargetChild As OLEObject)

Dim Myconnection As Connection

Dim Myrecordset As Recordset

Dim Myworkbook As String

Dim strSQL As String

Set Myconnection = NewConnection

Set Myrecordset = NewRecordset

‘识别要引用的工作簿

Myworkbook =Application.ThisWorkbook.FullName

‘打开对该工作簿的连接

Myconnection.Open”Provider=Microsoft.Jet.OLEDB.4.0;” & _    “Data Source=”& Myworkbook & “;” & _    “ExtendedProperties=Excel 8.0;” & _    “Persist SecurityInfo=False”

‘确定正确的SQL语句,在父列表框中使用该值作为查询的参数

Select CaseTargetChild.Name

Case Is =”lstMarket”

strSQL = “SelectDistinct [Market] AS [tgtField] from [Sheet1$A1:C40] Where [Region]='”& Sheet1.lstRegion.Value & “‘”

Case Is =”lstState”

strSQL = “SelectDistinct [State] AS [tgtField] from [Sheet1$A1:C40] Where [Market]='”& Sheet1.lstMarket.Value & “‘”

End Select

‘装载查询到记录集中

Myrecordset.Open strSQL,Myconnection, adOpenStatic

‘填充目标子列表框

With TargetChild.Object

.Clear

Do

.AddItemMyrecordset![tgtField]

Myrecordset.MoveNext

Loop UntilMyrecordset.EOF’自动选择列表框中的第一个值

.Value = .List(0)    End With

‘清理    Myconnection.Close

Set Myrecordset = Nothing

Set Myconnection =Nothing

End Function

每个父列表框的OnClick事件只是简单地调用上面的函数,传递目标子列表框作为函数的参数:

Private Sub lstMarket_Click()    CallCascadeChild(ActiveSheet.OLEObjects(Sheet1.lstState.Name))End Sub Private Sub lstRegion_Click()    Call CascadeChild(ActiveSheet.OLEObjects(Sheet1.lstMarket.Name))End Sub

说明

1.示例中使用的是ActiveX列表框控件。

2.需要在VBE中设置对Microsoft ActiveX Data Objects Library的引用,如下图2所示。

excel图表制作:创建级联列表框

图2

标签:excel图表制作,excel常用函数,excel数据透视表,Excel教程
0
投稿

猜你喜欢

  • WPS如何撤销和恢复 WPS撤销和恢复使用方法介绍

    2023-04-05 10:02:57
  • Excel中f4键按了没反应怎么办? Excel中F4键没反应的解决办法

    2022-05-03 10:58:08
  • ​艾奇电子相册软件如何制作视频

    2023-10-12 22:54:23
  • Win10插入外接设备会自动打开文件怎么办?

    2023-06-24 10:56:18
  • Win10重装系统后显示屏有黑边怎么办?重装系统后显示屏有黑边图文步骤

    2023-03-10 16:55:45
  • win8系统下通知功能的设置详解

    2022-05-24 06:15:02
  • win10共享提示组织安全策略阻止怎么解决?

    2023-01-14 16:19:17
  • excel2010怎么插入excel文件?Excel2010插入excel文件教程

    2022-02-02 06:23:14
  • Win10主题更改后背景色无法变更?这个设置麻烦禁用下

    2023-11-13 09:29:07
  • WPS excel如何跨列隔行粘贴

    2022-12-29 16:46:22
  • iPad 应用推荐 | 专业矢量图标绘制设计软件:Vectornator

    2022-09-15 17:57:48
  • 升级Win11 22H2玩游戏卡顿的解决方法

    2022-03-24 22:56:54
  • Nisus Writer Pro for Mac如何修改文字

    2023-03-01 08:36:23
  • Win10最新版 将补充和完善窗口动画和通知中心功能

    2022-11-21 20:18:21
  • 用Word制作员工工资条,一键生成所有人的工资条

    2023-12-15 03:04:37
  • 如何巧用WPS窗体制下拉选项

    2022-08-13 16:26:03
  • MacOS新手操作之快速有效的认识桌面

    2023-07-02 15:41:26
  • Win11不显示缩略图怎么办?Win11不显示缩略图的解决方法

    2022-08-05 12:49:34
  • wps文字如何复制段落格式

    2022-02-14 07:44:37
  • 深度技术系统的文件夹权限设置

    2023-10-29 13:45:55
  • asp之家 电脑教程 m.aspxhome.com