Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一起学Excel专业开发25:使用类模块创建对象4

一起学Excel专业开发25:使用类模块创建对象4

作者头像
fanjy
发布于 2019-11-13 04:55:48
发布于 2019-11-13 04:55:48
77000
代码可运行
举报
文章被收录于专栏:完美Excel完美Excel
运行总次数:0
代码可运行

在阅读本文之前,建议先阅读下面3篇文章:

1.一起学Excel专业开发22:使用类模块创建对象1

2.一起学Excel专业开发23:使用类模块创建对象2

3.一起学Excel专业开发24:使用类模块创建对象3

响应事件

类模块能够对事件进行响应,这也是它的一个强大的功能。

下面,我们接着前面文章中的示例进一步扩展,添加如下功能:

1.双击工作表中某单元格时,高亮显示与该单元格同类型的所有单元格。

2.右击工作表中某高亮显示的单元格时,取消所有同类型单元格的高亮显示。

3.当工作表中单元格被修改时,对应的CCell对象能自动更新。

要获取与对象相关的事件,一般有两个步骤:

1.在类模块中使用WithEvents声明一个对象类型的变量。

2.给该变量指定某对象的引用。

在CCells类模块的顶部,添加一条声明语句:

Private WithEvents mwksWorksheet AsExcel.Worksheet

此时,可以在该类模块的代码窗口顶部左上方的下拉列表中选择mwksWorksheet,单击其右上方的下拉列表,可以看到所捕获的事件,如下图1所示。

图1

我们选添加一个名为Worksheet的新属性,然后添加BeforeDoubleClick事件、BeforeRightClick事件和Change事件,以实现我们想要的功能。

在CCells类模块中新添加的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'声明模块级事件处理变量
Private WithEvents mwksWorksheet As Excel.Worksheet
 
'添加新属性
Property Set Worksheet(wks As Excel.Worksheet)
   Set mwksWorksheet = wks
End Property
 
'捕获双击工作表单元格事件
Private Sub mwksWorksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   If Not Application.Intersect(Target, mwksWorksheet.UsedRange) Is NothingThen
       Highlight mcolCells(Target.Address).CellType
       Cancel = True
   End If
End Sub
 
'捕获右击工作表单元格事件
Private Sub mwksWorksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
   If Not Application.Intersect(Target, mwksWorksheet.UsedRange) Is NothingThen
       UnHighlight mcolCells(Target.Address).CellType
       Cancel = True
   End If
End Sub
 
'捕获工作表单元格内容修改事件
Private Sub mwksWorksheet_Change(ByValTarget As Range)
   Dim rngCell As Range
   If Not Application.Intersect(Target, mwksWorksheet.UsedRange) Is Nothing Then
       For Each rngCell In Target.Cells
            mcolCells(rngCell.Address).Analyze
       Next rngCell
   End If
End Sub

然后,修改标准模块中的CreateCellsCollection过程代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Public Sub CreateCellsCollection()
   Dim clsCell As CCell
   Dim rngCell As Range
   
    '创建新的Cells集合
   Set gclsCells = New CCells
   Set gclsCells.Worksheet = ActiveSheet
   
    '对当前工作表中已使用区域中的每个单元格创建Cell对象
   For Each rngCell In Application.ActiveSheet.UsedRange
       gclsCells.Add rngCell
   Next rngCell
End Sub

好了!现在可以来在工作表中体验事件了。

首先,执行CreateCellsCollection过程,将当前工作表赋给事件处理对象。然后,在工作表中双击某单元格,你会发现同类型的单元格都改为相同的背景色,在其中某个单元格上右击,背景色消失。

图2

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
好玩的单机游戏_附近哪里好玩
大家好,又见面了,我是你们的朋友全栈君。 米国时间2月24日,Esri联邦GIS大会在华盛顿召开,会上,Esri总裁杰克•丹杰蒙德宣布了这一消息。他说:“无人机的出现促使相关技术为许多工业领域带来革命性的颠覆。我们为ArcGIS开发Drone2Map,就是希望人们能够处理、使用和分享影像信息,而这一切功能都被一体化地集成在ArcGIS平台上。” Drone2Map for ArcGIS是Esri推出的一款支持多线程的64位桌面端的APP,它以ArcGIS平台为支撑,通过与Pix4D专业算法集成,提供了从无人机原始数据到高质量镶嵌正射产品、DSM产品、3D网格纹理产品等生产全流程。
全栈程序员站长
2022/09/21
1.8K0
好玩的单机游戏_附近哪里好玩
跟我一起复制一款基于ESP-Drone无人机控制板[通俗易懂]
ESP无人机是基于ESPRESIF ESP32/ESP32-S2 Wi-Fi芯片的开源解决方案,可通过Wi-Fi连接到手机应用程序或游戏控制台。ESP无人机具有简单的硬件、清晰和可扩展的代码体系结构,因此该项目可用作为STEAM(科学、技术、工程、数学)的教育平台或其它的控制领域。它的主要代码从CrazyFle开源项目移植而来,采用了GPL3.0协议。
全栈程序员站长
2022/09/22
1.1K0
跟我一起复制一款基于ESP-Drone无人机控制板[通俗易懂]
无人机数车–Drone-based Object Counting by Spatially Regularized Regional Proposal Network[通俗易懂]
Drone-based Object Counting by Spatially Regularized Regional Proposal Network ICCV2017 数据库:https://lafi.github.io/LPN/
全栈程序员站长
2022/09/21
3150
无人机数车–Drone-based Object Counting by Spatially Regularized Regional Proposal Network[通俗易懂]
XAMPP环境的搭建[通俗易懂]
XAMPP是一个强大的集成软件包(什么是集成软件包?就是多个软件打包一起安装了,比如office办公软件包括了word、Excel、PPT)
全栈程序员站长
2022/09/07
2.2K0
XAMPP环境的搭建[通俗易懂]
苹果绕id工具_绕ID教程(iOS13.313.3.1)[通俗易懂]
前几期,我已经第一时间将绕ID教程给我的粉丝奉上,当然我也会一直做这个事情,由于越狱软件的不支持,所以导致iOS13.3以上是不能成功绕过ID锁的,所以今天给大家上一个适合iOS13.3,以及13.3.1。
全栈程序员站长
2022/08/02
4.8K0
苹果绕id工具_绕ID教程(iOS13.313.3.1)[通俗易懂]
DirectX修复工具V4.1公测![通俗易懂]
DirectX修复工具V4.1版现已正式发布,欢迎下载。传送门:标准版、增强版、在线修复版
全栈程序员站长
2022/07/01
4.2K0
DirectX修复工具V4.1公测![通俗易懂]
DirectX修复工具强力修复实验包[通俗易懂]
https://pan.baidu.com/s/1viLPeKp8vtFCy8Pr1S9CWw
全栈程序员站长
2022/07/28
3K0
DirectX修复工具强力修复实验包[通俗易懂]
SQL Prompt10 安装激活教程,让你写sql 如鱼得水[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158909.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/17
10.5K5
SQL Prompt10 安装激活教程,让你写sql 如鱼得水[通俗易懂]
PotPlayer安装与配置[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。 目录 1.简介 2.安装 3.设置 基本选项设置: 播放选项设置: PotPlayer皮肤设置: ---- 1.简介 PotPlayer一款小巧简单的视频播放
全栈程序员站长
2022/08/31
5.2K0
PotPlayer安装与配置[通俗易懂]
AWVS简单操作[通俗易懂]
激活成功教程版下载链接(10.5版本):链接: https://pan.baidu.com/s/1t6VV7dl4MTaooirW4F9VgQ 提取码: mk4e
全栈程序员站长
2022/11/09
2.6K0
AWVS简单操作[通俗易懂]
基于YOLO11的无人机检测系统(Python源码+数据集+Pyside6界面)
💡💡💡本文摘要:基于YOLO11的无人机检测,阐述了整个数据制作和训练可视化过程
AI小怪兽
2025/03/16
1490
Dreamweaver CS6 完全自学教程 (一)[通俗易懂]
Dreamweaver CS6 教程下载地址(百度网盘):https://pan.baidu.com/s/1fIUk4O36JCNVCfOQSH22vw
全栈程序员站长
2022/07/01
8710
Dreamweaver CS6 完全自学教程 (一)[通俗易懂]
全新ArcGIS Pro 2.9来了
ArcGIS Pro 2.9现在支持访问云数据仓库,以允许查看、分析和发布数据子集。可以连接到Amazon Redshift、 Google BigQuery或 Snowflake。
陈南GISer
2021/12/15
3.1K0
全新ArcGIS Pro 2.9来了
Drone2Map:如何使用带有POS信息的无人机数据生成三维模型「建议收藏」
使用Drone2Map生成slpk,将slpk加载至ArcGIS Pro中,slpk悬浮在空中。
全栈程序员站长
2022/09/21
1.5K0
Drone2Map:如何使用带有POS信息的无人机数据生成三维模型「建议收藏」
Mac录屏,同时保留声音[通俗易懂]
1.先装Soundflower: Soundflower下载地址 http://pan.baidu.com/s/1jH9r6iM
全栈程序员站长
2022/08/13
2.4K0
Mac录屏,同时保留声音[通俗易懂]
SLAM技术分享_it技术分享社区
同时定位与地图重建(Simultaneous Localization and Mapping, SLAM),是机器人领域中的一项基础的底层技术,其希望机器人能在一个陌生的环境下实现自身的实时定位,同时能够重建出有关于环境的地图。随着近年无人驾驶、增强现实、虚拟现实等应用的兴起,作为实现这些应用的SLAM技术也越发引人注目。SLAM技术主要完成两项任务:自身定位与环境建图,也是让机器知道自己在哪里,已经周围的环境是啥。然而,如果想要精确的实现定位任务就不可避免的需要高精度的地图,而高精度的地图重建是需要以更为精确的自身定位作为基础的。 近年以来,除了传统的激光SLAM解决方案,基于视觉,基于惯性传感器等等的解决方案也在不断变多,整个SLAM领域整体呈现百花齐放的态势。 一. 目前在SLAM领域中的关键问题: 1、数据关联:SLAM技术在未来的发展过程中必然会有一个方向是将SLAM系统中集成多传感器,进行多传感器的融合任务。但是显而易见的是不同的传感器之间具有不同的特征,目前的很多SLAM研究人员都转向了研究多传感器SLAM中的传感器校准(例如自校准或者快速标定等内容),状态估计和后端BA优化。 2、 多机SLAM联合建图:目前在小范围内已有的若干SLAM系统大多都能获得比较好的效果,但是面对大规模,长时间的SLAM问题,如果只采用单机SLAM系统则获得良好的效果,此时通过分散的多机SLAM系统来解决大场景,长时间的SLAM任务将会是一个比较合适的选择,属于比较前沿的SLAM研究方向。 3、 高清晰度、信息量丰富的地图:SLAM技术作为机器人领域的一项底层基础技术,需要根据上层应用程序需要提供一张具有丰富信息的地图,其中比较具有代表性的地图形式就是拓扑地图,语义地图,以及点云地图等等;同时当SLAM系统的面对大场景,长时间的情况时,采用何种方式来存储更新地图也将是一个迫切需要解决的问题。 3、目前SLAM技术仍然面对着更强适应性、鲁棒性、可扩展性的要求。 4、适合的SLAM应用:目前SLAM技术具有广泛的应用场景,但是许多SLAM系统依然处在实验室研究阶段,缺乏合适的工程工具进行封装,需要我们继续完善SLAM的应用生态。 二. SLAM领域中的经典数据集: 1.KITTI数据集(单目视觉 ,双目视觉, velodyne, POS 轨迹)
全栈程序员站长
2022/11/10
1.1K0
SLAM技术分享_it技术分享社区
中国地图的正确打开方式
剧集中,使用的一幅动画地图在绝大部分中国版图都着亮色的情况下,原本属于中国的海南岛和台湾岛却被排除在外,中印边境东西两段的划分也有问题。此事在社交媒体上引发热议后,播出平台爱奇艺和腾讯删除了相关画面,此后删除的内容又重新上线,地图也进行了调整,但是在更改后的地图中,中国藏南地区的中印边界仍然存在错误。据此,自然资源部已责成属地管理部门对涉嫌违法违规的行为依法进行处理,自然资源部核查处理相关影视剧存在的“问题地图”[1]
MeteoAI
2019/08/09
4K0
中国地图的正确打开方式
Linux服务器配置(详细版)[通俗易懂]
1.进入文件夹 cd 文件夹名称 2.复制文件夹 cp 文件名 指定目录 copy文件到指定目录 例如 cp 文件名称 文件路径/var/www 例子 cp /root/gqxnb/gqx /var/www 3.查看文件夹目录 lsattr [-adRvV] [文件或目录…]选项介绍: ls也可以 4.复制 cp 5. 文件移动命令mv 6. 文件删除命令rm 7.重命名文件和文件夹 linux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹. mv 修改前文件名 修改后文件名,按回车。
全栈程序员站长
2022/07/29
12K0
Linux服务器配置(详细版)[通俗易懂]
Web渗透测试工具[通俗易懂]
是用于攻击web 应用程序的集成平台。它包含了许多Burp工具,这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。这些工具设计了许多接口,以促进加快攻击应用程序的过程。所有的工具都共享一个能处理并显示HTTP 消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架。它主要用来做安全性渗透测试。
全栈程序员站长
2022/09/22
8080
Web渗透测试工具[通俗易懂]
倾斜摄影当中重叠度、传感器尺寸、焦距等参数问题梳理[通俗易懂]
随着无人机的快速发展,倾斜摄影行业迎来了一个新的浪潮,越来越多的人利用无人机从事测绘行业的相关数据采集工作。在数据采集过程当中遇到了各种各样的问题,导致飞出来的数据不达标,无法完成模型重建工作。这里根据自己的接触对倾斜摄影过程当中重叠度、传感器、焦距、飞行速度、拍照间隔等参数以及他们之间的相互关系做一个简单的梳理。如有不当或错误之处敬请指正。
全栈程序员站长
2022/06/30
2.1K0
倾斜摄影当中重叠度、传感器尺寸、焦距等参数问题梳理[通俗易懂]
推荐阅读
相关推荐
好玩的单机游戏_附近哪里好玩
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验