当前位置: 首页 > news >正文

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

《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.dtcms.com/a/112060.html

相关文章:

  • C语言:3.31
  • 【YOLO系列(V5-V12)通用数据集-火灾烟雾检测数据集】
  • 大模型学习四:‌DeepSeek Janus-Pro 多模态理解和生成模型 本地部署指南(折腾版)
  • 七均线策略思路
  • Mac VM 卸载 win10 安装win7系统
  • Win7下安装高版本node.js 16.3.0 以及webpack插件的构建
  • Apache Camel指南-第四章:路由径构建之异常处理
  • 如何使用 IntelliJ IDEA 开发命令行程序(或 Swing 程序)并手动管理依赖(不使用 pom.xml)
  • 从飞机的状态矩阵A阵求运动模态的特征根、求传递函数矩阵
  • NOIP2013提高组.华容道
  • 从菜鸟到高手的提示词优化指南‌
  • Muduo网络库介绍
  • Sensodrive力控关节模组SensoJoint:TÜV安全认证助力机器人开发
  • 主机和虚拟机间的网络通信
  • LeetCode算法题(Go语言实现)_29
  • JavaScript重难点突破:事件循环
  • 基于 Python 的自然语言处理系列(70):检索增强生成(RAG)
  • Go语言-初学者日记(八):构建、部署与 Docker 化
  • 《操作系统真象还原》第五章(2)——启用内存分页机制
  • 蓝桥杯15届 宝石组合
  • 【HC-05蓝牙模块】基础AT指令测试
  • 思维链 Chain-of-Thought(COT)
  • 视野,,地面覆盖,重叠需求,FPS,飞行速度等的计算公式
  • LLM面试题五
  • JVM 有哪些垃圾回收器
  • 【2023】ORIGIN或MATLAB 颜色图,等高图,颜色条——需要拟合补全中间的颜色
  • 算法--最长上升子序列
  • 京东零售首次公开!6B参数时序大模型实现20000款商品自动补货预测
  • Java 搭建 MC 1.18.2 Forge 开发环境
  • 《探索边缘计算:重塑未来智能物联网的关键技术》