VBA中类的解读及应用第二十二讲:利用类判断任意单元格的类型-5

news2025/4/11 19:10:32

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

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

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA中类的解读及应用第二十二讲:利用类方法,判断任意单元格的类型-5

【分享成果,随喜正能量103】一百次的好,只要有一次不好,别人就会抹杀你所有的付出,100-1=0,就是这么现实!只是因为1的差,就否定了99的好,人都是贪得无厌的,所以啊,不要过分的善良!做好自己就行,剩下的交给良心!在喜欢你的人那里,去热爱生活;在不喜欢你的人那里,去看清世界。。

第二十二讲 利用类方法,判断任意单元格的类型-5

在讲解了类模块及标准模块的代码后,我们今日的内容将讲解代码的运行过程.

9 代码的执行过程

1) 在上述界面中,我们点击C5单元格.这个时候我们看看代码的运行:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim MyCell As MyCTYPE

If Range("A1") = "QQ" Then

Set MyCell = New MyCTYPE

Set MyCell.Cell = ActiveCell

MyCell.PD

MsgBox MyCell.CType

'MsgBox MyCell.Cell

'MsgBox MyCell.CellType

End If

End Sub

2) 在上述语句中要先执行判断预计, If Range("A1") = "QQ" Then这个时候的A1单元格是空值,那么不会有任何的动作.

3) 好,我们在A1单元格中录入”QQ”:

4) 再次点击C5单元格,这个时候ActiveCell为C5,Set MyCell.Cell = ActiveCell建立了关联后;CELL 属性是可以读和写的:

Property Set Cell(ByRef rngCell As Excel.Range)

Set mrng = rngCell

End Property

Property Get Cell() As Excel.Range

Set Cell = mrng

End Property

此时把C5这个单元格就赋值给了mrng变量。

5) 当Worksheet_SelectionChange事件执行到MyCell.PD这个方法时,在类模块中执行判断,。这个时候C5单元格的值是1,

Public Sub PD()

If IsEmpty(mrng) Then

TT = T1

ElseIf mrng.HasFormula Then

TT = T2

ElseIf IsNumeric(mrng.Formula) Then

TT = T3

Else

TT = T4

End If

End Sub

这个时候C5单元格的值是1,是数字会返回TT=2.

10 代码的执行效果

6) Worksheet_SelectionChange事件继续执行MsgBox MyCell.CType

会用到MyCell的CType属性,在类模块代码中CType属性是执行下面的代码:

Property Get CType() As String

Select Case TT

Case T1

CType = "空值"

Case T2

CType = "公式"

Case T3

CType = "数值"

Case T4

CType = "其他"

End Select

End Property

这个时候要对枚举TT进行一个选择,看看枚举的变量中哪个被赋值.刚才已经给TT赋值为2,那么就是执行反馈:

Case T3

CType = "数值"

CType的属性值为"数值",于是弹出一个对话框:

这就是整个的过程。

小结:佛主下达了取经的指令,观音菩萨完成了团队的组件,把佛主的指令落实到了取经的团队,整个团队的组建是有灵魂和组织目的及方针的,在整个团队的团结协作下,完成取经的整个过程。

我们从类的构建开始,到类与对象的关联,当点击单元格,到弹出对话框的整个动作。一切的工作都是类的灵魂的重现。都是按照组建类的目的来实施。

细心的朋友会留意到,类的一个属性CellType在整个工程中,我并没有用到,为什么要还要建立这个属性呢?其实这是中间环节的测试,通过这个属性的设置,在测试代码的时候可以轻松的提取TT值。可以把这个属性去掉是没有任何问题的。也是对取经团队的考核吧,大家可否还记得二师兄被吊在树上的画面呢?这也是测试。

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

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



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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32F103_LL库+寄存器学习笔记13 - 梳理外设CAN与如何发送CAN报文(串行发送)

导言 CAN总线因其高速稳定的数据传输与卓越抗干扰性能,在汽车、机器人及工业自动化中被广泛应用。它采用分布式网络结构,实现多节点间实时通信,确保各控制模块精准协同。在汽车领域,CAN总线连接发动机、制动、车身系统&#xff0c…

Linux系统调用编程

文章目录 一、进程和线程二、Linux的虚拟内存管理和stm32的真实物理内存**Linux虚拟内存管理**STM32物理内存映射2. 主要区别 三、Linux系统调用函数 fork()、wait()、exec()1. fork():创建子进程2. wait():等待子进程状态改变3. exec():替换…

游戏引擎学习第203天

回顾当前情况 在这里我将直播完成整个游戏的制作。我们现在面临一些技术上的困难,确实如此。我的笔记本电脑的电源接口坏了,所以我不得不准备了这台备用笔记本,希望它能够正常工作。我所以希望一切都还好,尽管我不完全确定是否一…

深度学习数据集划分比例多少合适

在机器学习和深度学习中,测试集的划分比例需要根据数据量、任务类型和领域需求灵活调整。 1. 常规划分比例 通用场景 训练集 : 验证集 : 测试集 60% : 20% : 20% 适用于大多数中等规模数据集(如数万到数十万样本),平衡了训练数…

CExercise_1_5 水仙花数

题目: 经典循环案例:请求出所有的水仙花数,并统计总共有几个。 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。 举例:153就是一个水仙花数,153 1 * 1 * 1 5 * 5 * 5 3 * 3 * 3 1 125…

哈密尔顿路径(Hamiltonian Path)及相关算法题目

哈密尔顿路径要求访问图中每个顶点恰好一次,通常用于解决旅行商问题(TSP)或状态压缩DP问题。 哈密尔顿路径(Hamiltonian Path)是指在一个图中经过每个顶点恰好一次的路径。如果这条路径的起点和终点相同(即…

MINIQMT学习课程Day10

开始获取股票数据课程的学习: 获取qmt账号的持仓情况后,我们进入下一步,如何获得当前账号的委托状况 还是之前的步骤,打开qmt,选择独立交易, 之后使用pycharm,编写py文件 导入包&#xff1a…

JAVA实战开源项目:智慧图书管理系统(Vue+SpringBoot) 附源码

本文项目编号 T 152 ,文末自助获取源码 \color{red}{T152,文末自助获取源码} T152,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

Linux 系统管理综合实训 —— 基于 NAT 模式的多 IP 配置、Nginx 服务部署及存储管理

1. 虚拟机网络配置:NAT模式与多IP地址设置 将你的虚拟机的网卡模式设置为nat模式,给虚拟机网卡配置三个主机位分别为100、200、168的ip地址 设置静态IP [rootlocalhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.2.100/2…

如何在windows 环境、且没有显卡的情况下用python跑通从ModelScope下载的大模型的调用

文章目录 背景介绍源代码:安装调试过程1.设置第三方镜像源2.预先安装:3.在python中创建代码:4.最终修改程序,将device_map从“cuda”改成“auto”,大模型调用1.5B(1___5B)的5.最终跑出结果解释:示例&#x…

黑马点评redis改 part 1

本篇将主要阐述短信登录的相关知识,感谢黑马程序员开源,感谢提供初始源文件(给到的是实战第7集开始的代码)【Redis实战篇】黑马点评学习笔记(16万字超详细、Redis实战项目学习必看、欢迎点赞⭐收藏)-CSDN博…

【Ragflow】11. 文件解析流程分析/批量解析实现

概述 本文继续对ragflow文档解析部分进行分析,并通过脚本的方式实现对文件的批量上传解析。 文件解析流程 文件解析的请求处理流程大致如下: 1.前端上传文件,通过v1/document/run接口,发起文件解析请求 2.后端api\apps\docum…

第三期:深入理解 Spring Web MVC [特殊字符](数据传参+ 特殊字符处理 + 编码问题解析)

✨前言:传参和状态管理,看似简单其实门道不少 在 Web 开发中,前端和后端最核心的交流方式就是“传参”,而“传参”除了涉及如何写代码获取参数,还藏着很多开发者容易忽略的细节: 为什么 URL 带了中文&…

Everything 安装教程与使用教程(附安装包)

文章目录 前言一、Everything 介绍二、Everything 安装教程1.Everything 安装包下载2.选择安装文件3.选择安装语言4.接受许可协议5.选择安装位置6.配置安装选项7.完成安装 三、Everything 使用教程1.启动软件2.简单关键词搜索3.按类型搜索 前言 在日常使用电脑时,随…

SQL语句(三)—— DQL

目录 基本语法 一、基础查询 1、查询多个字段 2、字段设置别名 3、去除重复记录 4、示例代码 二、条件查询 1、语法 2、条件列表常用的运算符 3、示例代码 三、分组查询 (一)聚合函数 1、介绍 2、常见的聚合函数 3、语法 4、示例代码 &…

Opencv计算机视觉编程攻略-第九节 描述和匹配兴趣点

一般而言,如果一个物体在一幅图像中被检测到关键点,那么同一个物体在其他图像中也会检测到同一个关键点。图像匹配是关键点的常用功能之一,它的作用包括关联同一场景的两幅图像、检测图像中事物的发生地点等等。 1.局部模板匹配 凭单个像素就…

汇编学习之《push , pop指令》

学习本章前线了解ESP, EBP 指令 汇编学习之《指针寄存器&大小端学习》-CSDN博客 栈的特点: 好比一个垂直容器,可以陆续放入物体,但是先放的物体通常会被后面放的物体压着,只有等上面后放的物品拿出来后,才能…

Python循环控制语句

1. 循环类型概述 Python提供两种主要的循环结构&#xff1a; while循环 - 在条件为真时重复执行for循环 - 遍历序列中的元素 2. while循环 基本语法 while 条件表达式:循环体代码示例 count 0 while count < 5:print(f"这是第{count1}次循环")count 13. f…