excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel VBA「案例分享」考场座位安排(用户窗体版)

本文于2023年9月30日首发于本人同名公众号,更多文章案例请搜索关注!

内容提要

  • 考场座位安排

  • 用户窗体

  • 类模块设置TextBox的Change事件

大家好,我是冷水泡茶,昨天我们分享了一个案例【Excel VBA【案例分享】考场座位安排:考场人数、每排人数均可调整】。我们列了3种输入参数的方式,其中第二条,使用用户窗体的方式,当时说估计当天不可能完成,遂改用第三种,在工作表中输入参数的方式。

虽说已完成当天发文的任务,但总感觉好象有什么事没有完成,总想着要是采用用户窗体的方式该怎么做呢?毕竟昨天做了一点,感觉就此放弃有点可惜,精力不是白花了嘛?

思来想去,终于还是决定试试。还好,终于做完了,分享给大家:

基本思路与实现过程

1、设置用户窗体UserForm1,添加必要的按钮。

2、考场(Label)、人数(TextBox)、每排人数(TextBox),通过代码动态添加。

3、我们增加一个类模块,用来设置“人数”这个文本框的Change事件。之所以要这样做,是因为文本框的数量是不确定的,也就是说考场的数量是不确定的。

我们可以直接添加若干个文本框,用来输入人数,但是,添加多少个合适呢?多了的话,用不到,空在那里也不好看,少了吧,那又不好扩展。所以,我们要采用动态添加的方式,需要一个就添加一个,这样感觉“高大上”了许多。

关于类模块我们前面分享过【Excel VBA 动态添加TextBox控件设置Change事件,这种方法很多人没想到!】、【Excel VBA 类模块实现动态添加的TextBox的Change事件完整代码】,今天我们就直接套用,当然,TextBox的Change事件代码是完全重写的。

4、窗体启动时,首先添加一组参数输入框:

5、如果需要添加考场的,我们点“增行”按钮:

只要有剩余人数,可以一直添加,前提是前面的考场都安排了人。这里窗体的大小随着考场的增加自动扩展。

这里关键是找到一个参照物,然后根据它的Top,Height的值来设置其他控件的Top值、窗体的高度等。

6、参数录入好以后,我们点确定进行考场安排。主要代码参照昨天的案例。把arrArng这个参数数组改为从用户窗体上的TextBox控件中取值。

7、完整代码放第二条吧,还是比较多的。

总结

1、动态添加控件,利用类模块来设置控件的事件。

2、用户窗体大小、控件位置动态调整。

~~~~~~End~~~~~~

喜欢就点个赞、点在看、留言评论、分享一下呗!感谢支持!

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接