VBA中类的解读及应用第十讲:限制文本框的输入,使其只能输入数值(上)

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。

类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌握了这些理论,不仅对于VBA这种寄生语言的实质有所深入的理解,也对自然界的很多事物将同样有所感悟。目前,这套教程程序文件已经通过32位,64位两种office系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA中类的解读及应用第十讲:限制文本框的输入,使其只能输入数值(上)0e43368013157e4a575867520b272fea.jpeg

【分享成果,随喜正能量】我们平常说祝福未来的精彩,其实是活好今天的信心、细水长流的日子、踏实冷静的面对和努力去呈现的一个个体的价值、个体的精神、个体的风采在群体当中的一种融合、担当和责任。。

第十讲 限制文本框的输入,使其只能输入数值(上)

大家好,我们今天继续讲解VBA中类的解读及应用,从这讲开始我们开始各种实例的学习,在实例学习的过程中我们要逐渐加深对概念的理解,对于几个重要的概念,我们再次回顾一下。

1)类CLASS: 类是对象的“灵魂”。对象可以是任何事物,而类不会做任何事情,也不会占用内存,只有当类成为对象并使用Set语句和New关键字实例化为具体对象后,才能做事情并占用内存。

2) 类的属性:用来描述类。有两种声明方案,一种是在类中直接声明,一种是用Property Let/Set/Get语句声明。

3)类的方法:在类中公共的Sub和Function。

4)类模块:类模块由属性和方法组成,类本身类似于名词;属性可以当作形容词,用来描述类;方法则为动词,执行操作。

5)类的实例化:建立新的类对象。注意这个对象不一定是实际意义上的实体,但可以作为实体来对待。

6)声明类的事件:用Event进行声明,但只是声明。

7)声明类实例化对象变量:用WithEvents

对于上面的概念要理解,理解后我们要利用上面的知识点来处理我们实际遇到的问题了。

1 需要完成的实例内容

本讲的实例要实现利用类模块,完成文本框录入只能是数字的校验,如果录入的不是数字那么将被取消录入。

2 完成实例的思路分析

在这个实例中,我们要完成对若干个文本框的校验,那么可以在窗体加载时把这些文本框设置成同一个类,然后让这个类共同响应一个类对象的事件,这个事件就是判断输入的值是否为数字。这样我们就可以达到目的了。

3 完成实例的代码实现

1) 先新建一个类mytext,在这个类中要声明一个类的对象变量,这个对象是用来响应事件的。

Public WithEvents Txtbox As MSForms.TextBox

Private Sub Txtbox_Change()

With CreateObject("vbscript.regexp")

.Global = True

.Pattern = "[^0-9.]+"

If .tesT(Txtbox.Text) Then

Txtbox.Text = .Replace(Txtbox.Text, "")

End If

End With

End Sub

在上述代码中Txtbox是一个类对象的变量,这个变量要响应的是Txtbox_Change事件。

3ac70dd3ec3e58422924c22588fa6ccc.jpeg

2) 搭建一个窗体,上面有若干个文本框。同时录入代码

31c7fec9fc40fbaa4cd648ac21b1b765.jpeg

代码:

Dim Txt() As New mytext

Private Sub CommandButton1_Click()

End

End Sub

Private Sub UserForm_Initialize()

For Each myctl In Me.Controls

If TypeName(myctl) = "TextBox" Then

m = m + 1

ReDim Preserve Txt(1 To m)

Set Txt(m).Txtbox = myctl

End If

Next

End Sub

Private Sub UserForm_Terminate()

End

End Sub

代码截图:

2b54f38bfb00a1647b86f6beaf700f2c.jpeg

上述代码中声明了一个类,同时把若干个文本框借助于动态数组,放到了我们期望的类对象中。这样在代码运行中就可以全部响应类的事件了。

由于篇幅的关系,代码的讲解和运行在下一讲。

今日内容回向:

1 属性、事件、方法、类、类模块是如何定义的?

2 让文本框响应同一个事件的思路是什么?

本讲内容参考程序文件:VBA-CLASS(1-28).xlsm

b2a5c9f39aad02392a5fa9dfb9cab46d.jpeg

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:


bedd8e500c892a1a49a57ff52644383d.jpeg

d32760c1dd21bf2083f36ccd1421cb5c.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/440379.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

10大AI工具

ChatGPT ChatGPT是由OpenAI开发的人工智能聊天机器人程序,全称为Chat Generative Pre-trained Transformer。它基于GPT-3.5架构,能够生成回答并根据聊天上下文进行互动。ChatGPT具备强大的对话能力,能在同一会话中回答上下文相关的问题&…

SpringCloud之Nacos入门与实战系列

目录 一、Nacos介绍 1.1、配置中心和注册中心的概念 1.2 Nacos 优点 二、Nacos的使用 2.1 以单机模式启动Nacos 2.2 Nacos部署方式介绍 2.3 配置数据源 2.4 开启控制台权限登录 三、配置中心的使用 3.1 创建配置信息 3.2 SpringBoot使用配置中心 四、注册中心的使用 4…

知识管理系统:初创企业的智慧助手

一、什么是知识管理系统 用通俗易懂的语言来解释,知识管理系统就像一个超级大脑,帮助企业和团队更好地记住、分享和使用他们学到的东西。无论是工作中的经验、方案还是项目成果,这个系统都能帮大家保存下来,并方便以后查找和使用。…

程序如何知道mqtt设备是否在线

在做物联网设备的时候经常会碰到设备的在线与掉线 问题:emqx如何来实现这个在线与掉线 实现:添加一个规则,程序监控这个规则 1、SELECT * FROM "$events/client_connected", "$events/client_disconnected" 2、添加一…

全面认识计算机

目录 一、计算机的发展史 1. 电子管计算机时代 2. 晶体管计算机时代 3. 小、中规模集成电路计算机时代 4. 大、超大规模集成电路计算机时代 二、计算机硬件组成 1. 输入设备 2. 输出设备 3. 存储器 4. 运算器 5. 控制器 三、计算机硬件间的连接 四、计算机系统的结…

AlpacaEval Leaderboard大模型排行榜

参考 Model NameWin RateLengthGPT-4 Turbo 📄50.00%2049Contextual AI (KTO-Mistral-PairRM) 📄33.23%2521Yi 34B Chat 📄29.66%2123Claude 3 Opus (02/29) 📄29.04%1388Claude 3 Sonnet (02/29) 📄25.56%1420GPT-4 …

数睿通2.0数据接入升级——支持增量字段同步,表单独映射

引言 上次数睿通 2.0 更新是在 23 年12 月 底,已经过去了接近三个月的时间,中间由于过年加上年前年后实在是工作繁忙,所以一直没有腾出空来更新代码,希望大家可以理解,平台的发展离不开你们的支持,在此表示…

Seata 2.x 系列【4】产品简介

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列Seata 版本 2.0.0 源码地址:https://gitee.com/pearl-organization/study-seata-demo 文章目录 1. 概述2. 发展历史3. 核心术语3.1 TC3.2 TM3.3 RM 4.…

泽众云真机-选择时长套餐?还是选择不限时套餐?

泽众云真机2月底推出了不限时套餐,改变了传统时长计费套餐,对用户来说,选择困难症状又来了,两种计费模式,我应该如何选择呢? 首先,说说平台为什么上线不限时套餐,之前平台运维和客服…

在vue3中根据element Plus封装一个图片上传组件

继上次文件上传之后&#xff0c;可能又遇到多个图片上传&#xff0c;图片如下 组件使用方法如下 话不多说&#xff0c;直接上组件&#xff0c;上面的划入删除是手写的&#xff0c;组件里面只有多图片上传的&#xff0c;索性就自己写了个划入显示点击删除的 下面是代码 <te…

❤ Vue3项目使用yarn 搭建 Vue3+Pinia+Vant3/ElementPlus+typerscript 系统篇(一)

❤ Vue3 完整项目搭建 Vue3PiniaVant3/ElementPlustyperscript系统篇&#xff08;一&#xff09; 1、项目环境和简介 环境 使用nvm 版本 20.10.0 node 版本 20.10.0 npm版本 10.2.3 项目简介&#xff1a; Vue3全家桶viteTSPiniaVant3/ElementPlus-搭建Vue3.x项目 项目开源地…

Dgraph 入门教程五(Shema)

要想做好图数据库&#xff0c;必须做图数据库设计&#xff0c;想做好Dgraph&#xff0c;就需要设计好Shema。Shema的语法是必须理解&#xff0c;如果不理解&#xff0c;别人写的Shema&#xff0c;我们也看不懂。我这里也是走马观花式的记录&#xff0c;细节还需要在使用的时候去…

AES加密学习

AES&#xff08;高级加密标准&#xff09;是一种对称密钥加密算法&#xff0c;用于加密和解密数据。它被广泛应用于各种安全领域&#xff0c;包括但不限于网络通信、数据存储和软件保护。 历史背景 AES是由比利时密码学家Joan Daemen和Vincent Rijmen设计的Rijndael算法演变而…

家用洗地机哪个型号好用?介绍几个值得考虑的品牌

作为家里的主要清洁工&#xff0c;我一直以来都是负责家里的清洁工作。我经常使用吸尘器和扫地机器人来轮流清洁&#xff0c;虽然效果还不错&#xff0c;但是这种方式太费时间和精力了。特别是在脸上厨房里做完饭和孩子吃完饭后留下的残渣时&#xff0c;我总是需要用传统的拖多…

超级简单的Docker安装(centos7)

文章目录 先安装所需要的工具包设置远程仓库安装启动docker查看版本 先安装所需要的工具包 yum install -y yum-utils #安装工具包&#xff0c;缺少这些依赖将无法完成&#xff1b;设置远程仓库 yum-config-manager --add-repo https://download.docker.com/linux/centos/doc…

【漏洞复现】锐捷 EWEB auth 远程命令执行漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

洗地机热门品牌测评:石头/希亦/顺造/云鲸洗地机哪个好?哪个牌子最值得入手

大家好&#xff0c;博主是一个热爱生活和科技的居家测评博主。在过去的三年多时间里&#xff0c;我专注于清洁家电——洗地机。我深入测评了三十多款洗地机&#xff0c;现在我将用简单易懂的语言来分享洗地机的选购技巧和热门洗地机机型推荐。 洗地机选购技巧&#xff1a; 看…

掌握java中继承

目录 1.概念&#xff1a; 2.使用&#xff1a; 3.super关键字 4.子类构造方法 5.super和this关键字 6.初始化时代码块的执行顺序 7.继承的方式 8.final关键字 1.概念&#xff1a; 是面向对象程序设计代码可以重复使用的重要手段&#xff0c;允许程序员在保持原有类特性的…

#stm32外设总结电容触摸按键

BS8116A-3 IRQ 外部中断请求 NMOS输出内部上拉 SCL SDA IIC通信接口 VDD 供电电压2.2-5.5V Ct电容: 0~25 pF 电容越大灵敏度越低 1、 软件使用流程 初始化 将IIC的两个引脚初始化为复用开漏模式 按键引脚设置上拉输入 下降沿触发外部中断 void KEY_Init(void) {//uint8_t …

【Unity】分拣机的数字双胞胎集成到Unity3D开发平台中

Unity HMI 一、前言 该项目的重点是通过OPC UA进行客户端-服务器通信的简单演示&#xff0c;该演示在Unity3D中实现&#xff08;服务器- B&R Automation PLC&#xff0c;客户端- Unity3D&#xff09;。该项目展示了数字孪生的分拣机与一些额外的功能。该应用程序使用多线程…