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

如何获取用户右击的Excel单元格位置

Excel VBA提供了Worksheet_BeforeRightClick事件,用户在Excel界面中,工作表窗口中在任意单元格上右击,在显示右键快捷菜单之前,将激活此事件。在工作表模块中,增加如下代码。

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)MsgBox "用户右击单元格为:" & Target.Address
End Sub

右击B3单元格,将显示如下图所示的消息框。

在这里插入图片描述

如果活动工作表中选中区域并非单个单元格,那么用户右击选中区域中的任意单元格时,上述代码的结果如下图所示。此时参数Target为选中区域(即Selection对象),不再是右击的单元格。

在这里插入图片描述

为了兼容这个应用场景,就需要借助API。

#If VBA7 ThenPrivate Declare PtrSafe Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
#ElsePrivate Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
#End If
Private Type POINTAPIX As LongY As Long
End TypePrivate Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)Dim lppt As POINTAPI, res As Long, c As Rangeres = GetCursorPos(lppt)Set c = ActiveWindow.RangeFromPoint(lppt.X, lppt.Y)MsgBox "选中区域为:" & Target.Address & vbCrLf & _"用户右击单元格为:" & c.Address
End Sub

【代码解析】
第1~5行代码声明Windows API,代码中使用了条件编译语句兼容32位和64位系统。
第6-9行代码为自定义数据类型。
第11~17行代码为工作表事件代码。
第13行代码调用API获取数据的屏幕位置。
第14行代码调用RangeFromPoint函数获取指定位置的单元格对象。
第15~16行代码显示提示消息框。

运行结果如下图所示。

在这里插入图片描述

http://www.dtcms.com/a/473354.html

相关文章:

  • 昆明企业网站建设公司虹口建设机械网站制作
  • 宁波p2p网站建设黑龙江省建设安全网站
  • Spring Boot 3零基础教程,自动配置机制,笔记07
  • Spring通关笔记:从“Hello Bean”到循环依赖的奇幻漂流
  • 【Spring Security】Spring Security 密码编辑器
  • MCU ADC外设工作原理介绍
  • k8s的ymal文件
  • 杭州公司建设网站网站建设标签
  • 博客系统小笔记
  • 后端开发和软件开发有什么区别
  • 分布式专题——41 RocketMQ集群高级特性
  • 自然语言处理分享系列-词语和短语的分布式表示及其组合性(一)
  • 从0到1实现鸿蒙智能设备状态监控:轻量级架构、分布式同步与MQTT实战全解析
  • RWKV架构讲解
  • Docker 镜像维护指南:从配置优化到 MySQL 实战运行
  • 电视盒子助手开心电视助手 v8.0 删除电视内置软件 电视远程控制ADB去除电视广告
  • 【完整源码+数据集+部署教程】 航拍杂草检测与分类系统源码和数据集:改进yolo11-RVB-EMA
  • My SQL--创建数据库、表
  • mysql高可用架构之MHA部署(三)——故障转移后邮件告警配置(保姆级)
  • 做酒的网站有哪些jsp获取网站域名
  • OpenCV(八):NumPy
  • 小微宝安网站建设有哪些做分析图用的网站
  • RabbitMQ 核心概念解析
  • 开发实战 - ego商城 - 2 nodejs搭建后端环境
  • 基于Java Swing的智能数据结构可视化系统 | 支持自然语言交互的AI算法助手
  • QQmusic sign值逆向实战 - Webpack打包分析
  • 城乡建设部网站首页网站建设公司应该怎么做推广
  • Linux环境下Hive4.0.1(最新版本)部署
  • dolphinscheduler之hivecli 任务
  • spark3访问低版本hive填坑记