excel学习库

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

Excel VBA 动态添加TextBox控件设置Change事件,这方法没想到!

本文于2023年7月9日首发于本人同名其他平台,更多文章案例请搜索关注!

☆本期内容概要☆

  • VBA 动态添加控件

  • 类模块设置TextBox控件Change事件

大家好,我是冷水泡茶,最近我在做“电子发票登记管理系统(Access版)”,我是将读取的发票信息显示到ListView中,但由于读取的信息不是100%准确,所以需要对Listview的Item进行修改。

那么,问题来了,Listview不支持直接修改,在我们前面分享过的收费管理系统中,我们采用的是Inkedit控件+API函数,但代码过于复杂,而且还有一点点兼容性问题。

所在,我们采用一个简单的方法,点击一条Listitem记录,将其内容显示到Textbox中,修改TextBox,再更新到Listview。

当然,修改Listview不是今天的重点,我们以后再聊。

在修改TextBox内容时,有三个项目是有关联的,“金额”、“税额”、“价税合计”。“金额”、“税额”变了,“价税合计”必须跟着自动改变。

要实现这样的功能,很多朋友是不是觉得很简单,TextBox有Change事件嘛。但问题是,我这些TextBox控件,是使用代码动态添加的,跟ListView的表头是一致的,没办法直接设置它们的Change事件(我试了好多办法都没有成功)。我也不是没有想过直接添加对应ListView表头的TextBox控件,但由于字段太多,位置设置也比较麻烦,并且如果后期字段发生改变代码也得修改,终于还是没有这样做。

于是,我想起来我们分享过的日期控件中使用类模块的方法,觉得应该可行,接下来也少不得咨询咨询AI。

经过一番修改测试,通过“类模块”完美实现我想要的功能。我觉得也许对大家有用,就把这一块功能单独抽出来分享给大家:

这里有几点说明:

1、输入金额、税额,价税合计自动改变。

2、价税合计不能修改,有两层含义:

(1)当输入完税额,回车后会跳到价税合计,这时,它是可编辑的,但你会发现不管你输入什么,它的数额总是等于金额+税额,看上去是不变的,实际上是有代码在控件它变了以后,再重新计算等于金额+税额。

(2)当我们用鼠标点击价税合计的时候,发现它是不可编辑的,当然,它也只是“看上去”不可编辑,实际上我们点击的不是TextBox控件,而是一个覆盖其上的透明标签,防止TextBox被修改。

完整代码详见下篇文章。

好,今天就到这吧。欢迎点赞、留言、分享,谢谢大家,我们下期再会。

发表评论:

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

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