Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3006|回复: 9

[已解决]求 修改完整窗体代码

[复制链接]
发表于 2009-12-1 14:15 | 显示全部楼层 |阅读模式

Private Sub UserForm_Initialize()

    Dim sh1 As Workbook

    Dim sh2 As Worksheet

    For Each sh1 In Workbooks

         ListBox1.AddItem sh1.Name

    Next

        For Each sh2 In Worksheets

        ComboBox2.AddItem sh2.Name

    Next

End Sub

上面的是一段窗口控件加载代码,ListBox1显示的是当前打开的工作薄名,ListBox2显示的是当前打开的工作表名。

上面代码现在的问题是:ListBox1显示的工作薄名book1 book2 但是ListBox1显示的是当前book1的工作表名,而不显示book2的工作表名

要求选ListBox1 book1时,ListBox2显示book1中的工作表名

要求选ListBox1 book2时,ListBox2显示book2中的工作表名

望各位帮忙解决

wfYIoT7Y.rar (9.22 KB, 下载次数: 0)
发表于 2009-12-1 14:33 | 显示全部楼层

ComboBox2.AddItem sh2.Name

不是combobox而是listbox

回复

使用道具 举报

发表于 2009-12-1 14:38 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2009-12-1 14:49 | 显示全部楼层

附件以上传

回复

使用道具 举报

发表于 2009-12-1 14:53 | 显示全部楼层

哦,不应该把worksheet的代码写在初始化中,因为你的list是根据前面一个变化的

所以应该写在listbox被点击的时候或者前面一个listbox值change的时候

回复

使用道具 举报

 楼主| 发表于 2009-12-1 15:01 | 显示全部楼层

具体如何写呢

回复

使用道具 举报

 楼主| 发表于 2009-12-1 15:04 | 显示全部楼层

给个初步答案
回复

使用道具 举报

发表于 2009-12-1 15:06 | 显示全部楼层    本楼为最佳答案   

icRoOJU4.rar (6.98 KB, 下载次数: 12)
回复

使用道具 举报

发表于 2009-12-1 15:10 | 显示全部楼层

  1. <br/>Private Sub ComboBox1_Change()<br/>&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp;&nbsp; Dim Sht As Worksheet<br/>&nbsp;&nbsp;&nbsp; With ComboBox2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For Each Sht In Workbooks(ComboBox1.Text).Worksheets<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .AddItem Sht.Name<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next<br/>&nbsp;&nbsp;&nbsp; End With<br/>End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2009-12-1 15:15 | 显示全部楼层

难题解决了谢谢

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-3 15:27 , Processed in 0.662058 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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