ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8000|回复: 11

[求助] 求ActiveX控件设置

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-4-9 00:33 | 显示全部楼层 |阅读模式
求助ActiveX控件设置.zip (44.65 KB, 下载次数: 86)


TA的精华主题

TA的得分主题

发表于 2013-4-9 02:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请测试:
  1. Dim d As Object, ds As Object

  2. Private Sub ComboBox1_Change()
  3.     If ComboBox1.ListIndex = -1 Then Exit Sub
  4.     [a8] = ComboBox1.Value
  5.     ComboBox2.Clear
  6.     ComboBox2.List = d(ComboBox1.Value).keys
  7.    
  8. End Sub

  9. Private Sub ComboBox2_Change()
  10.     If ComboBox2.ListIndex = -1 Then Exit Sub
  11.     [a10] = ComboBox2.Value
  12.     ComboBox3.Clear
  13.     ComboBox3.List = ds(ComboBox1.Value & ComboBox2.Value).keys
  14. End Sub

  15. Private Sub ComboBox3_Change()
  16.     [b8] = ComboBox3.Value
  17. End Sub

  18. Private Sub ComboBox1_DropButtonClick()
  19.     Dim arr, i&
  20.     Set d = CreateObject("scripting.dictionary")
  21.     Set ds = CreateObject("scripting.dictionary")
  22.     arr = Sheets("名单").Range("A1").CurrentRegion
  23.     For i = 2 To UBound(arr)
  24.         If Not d.Exists(arr(i, 4)) Then Set d(arr(i, 4)) = CreateObject("scripting.dictionary")
  25.         d(arr(i, 4))(arr(i, 7)) = ""
  26.         If Not ds.Exists(arr(i, 4) & arr(i, 7)) Then Set ds(arr(i, 4) & arr(i, 7)) = CreateObject("scripting.dictionary")
  27.         ds(arr(i, 4) & arr(i, 7))(arr(i, 3)) = ""
  28.     Next
  29.     ComboBox1.List = d.keys
  30.     ComboBox1.ListIndex = 0
  31. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2013-4-9 02:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请看附件
求助ActiveX控件设置.rar (56.96 KB, 下载次数: 78)

TA的精华主题

TA的得分主题

发表于 2013-4-9 02:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 crazy0qwer 于 2013-4-9 03:11 编辑
  1. '---------------------------------------Sheet1 代码
  2. Private Sub ComboBox1_Change()
  3.     Dim Ar, I As Long
  4.     On Error Resume Next
  5.     Ar = Split(D1(ComboBox1.Text), ",")
  6.     ComboBox2.Clear
  7.     For I = 0 To UBound(Ar)
  8.         ComboBox2.AddItem Ar(I)
  9.     Next
  10. End Sub
  11. Private Sub ComboBox2_Change()
  12.     Dim Ar, I As Long
  13.     Ar = Split(D2(ComboBox1.Text & ComboBox2.Text), ",")
  14.     ComboBox3.Clear
  15.     For I = 0 To UBound(Ar)
  16.         ComboBox3.AddItem Ar(I)
  17.     Next
  18. End Sub
  19. Private Sub Worksheet_Activate()
  20.     Call auto_open
  21. End Sub
  22. '-----------------------------------------------------模块代码
  23. Public D1 As Object, D2 As Object
  24. Sub auto_open()
  25.     Dim Ar, I As Long
  26.     Ar = Worksheets("名单").[A1].CurrentRegion
  27.     Set D1 = CreateObject("scripting.dictionary")
  28.     Set D2 = CreateObject("scripting.dictionary")
  29.     D1.RemoveAll
  30.     D2.RemoveAll
  31.     Worksheets("选择").ComboBox1.Clear
  32.     For I = 2 To UBound(Ar)
  33.         If D1.Exists(Ar(I, 4)) = False Then Worksheets("选择").ComboBox1.AddItem Ar(I, 4)
  34.         D1(Ar(I, 4)) = IIf(InStr(D1(Ar(I, 4)), Ar(I, 7)) = 0, D1(Ar(I, 4)) & Ar(I, 7) & ",", D1(Ar(I, 4)))
  35.         D2(Ar(I, 4) & Ar(I, 7)) = D2(Ar(I, 4) & Ar(I, 7)) & Ar(I, 3) & ","
  36.     Next
  37. End Sub

复制代码



求助ActiveX控件设置.rar (57.94 KB, 下载次数: 37)

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-9 02:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zhaogang1960 发表于 2013-4-9 02:22
请看附件

非常感谢您的帮助!但第一步就不能选择队伍的(只能选择小熊队,其他不能)???

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-9 03:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
crazy0qwer 发表于 2013-4-9 02:38

感谢您的帮助!!!但选择后没有在规定单元格内显示哦? 请问怎样调整?谢谢!

TA的精华主题

TA的得分主题

发表于 2013-4-9 03:25 | 显示全部楼层
广州明亮 发表于 2013-4-9 03:15
感谢您的帮助!!!但选择后没有在规定单元格内显示哦? 请问怎样调整?谢谢!

你要显示哪三个单元格?把控件的属性关联到对应单元格就可以了。
打开工作簿,和 激活 控件所在表 可以重新获取数据
因为 如果用点击组合框就去获取数据的话,如果数据量大会比较卡,所以在启动的时候,还有重新激活这个表的时候去获取。
jdfw.gif

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-9 03:45 | 显示全部楼层
crazy0qwer 发表于 2013-4-9 03:25
你要显示哪三个单元格?把控件的属性关联到对应单元格就可以了。
打开工作簿,和 激活 控件所在表 可以重 ...

问题解决。非常感谢您的帮助!!!{:soso_e196:}

TA的精华主题

TA的得分主题

发表于 2013-4-9 03:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
广州明亮 发表于 2013-4-9 03:45
问题解决。非常感谢您的帮助!!!

换下面这个试试,从版主那学了点东西。。。
  1. '-----------------------------------------------------模块代码
  2. Public D1 As Object, D2 As Object
  3. Sub auto_open()
  4.     Dim Ar, I As Long
  5.     Ar = Worksheets("名单").[A1].CurrentRegion
  6.     Set D1 = CreateObject("scripting.dictionary")
  7.     Set D2 = CreateObject("scripting.dictionary")
  8.     D1.RemoveAll
  9.     D2.RemoveAll
  10.     For I = 2 To UBound(Ar)
  11.         D1(Ar(I, 4)) = IIf(InStr(D1(Ar(I, 4)), Ar(I, 7)) = 0, D1(Ar(I, 4)) & Ar(I, 7) & ",", D1(Ar(I, 4)))
  12.         D2(Ar(I, 4) & Ar(I, 7)) = D2(Ar(I, 4) & Ar(I, 7)) & Ar(I, 3) & ","
  13.     Next
  14.     Worksheets("选择").ComboBox1.Clear
  15.     Worksheets("选择").ComboBox1.List = D1.keys
  16. End Sub
  17. '---------------------------------------Sheet1 代码
  18. Private Sub ComboBox1_Change()
  19.     ComboBox2.Clear
  20.     ComboBox2.List = Split(D1(ComboBox1.Text), ",")
  21. End Sub
  22. Private Sub ComboBox2_Change()
  23.     ComboBox3.Clear
  24.     ComboBox3.List = Split(D2(ComboBox1.Text & ComboBox2.Text), ",")
  25. End Sub
  26. Private Sub Worksheet_Activate()
  27.     Call auto_open
  28. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-9 04:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
{:soso_e189:}{:soso_e179:}{:soso_e181:}{:soso_e183:}
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-16 03:50 , Processed in 0.026619 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表