鼠标按下事件计时

2024-03-25

我被要求编写代码,使其能够单击 Excel 中的图像并在其顶部添加形状(这是物理治疗师的身体图,该形状将指示患者疼痛的部位)。我的代码通过使用 ActiveX 图像控件的鼠标按下事件来完成此操作:

Private Sub bodypic_MouseDown(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)

ClickShape x, y

End Sub

Sub ClickShape(x As Single, y As Single)

Dim shp As Shape
Dim cursor As Point

Set shp = ActiveSheet.Shapes.AddShape(msoShapeMathMultiply, x + ActiveSheet.Shapes("bodypic").Left, _
y + ActiveSheet.Shapes("bodypic").Top, 26, 26)

With shp.Fill

    .ForeColor.RGB = RGB(255, 0, 0)
    .BackColor.RGB = RGB(255, 0, 0)

End With

shp.Line.Visible = False

End Sub

问题是,当鼠标光标位于图表上方时,形状不可见。只有当鼠标移离图表时,形状才会出现。

我试过了各种方法 https://stackoverflow.com/questions/3735378/force-a-screen-update-in-excel-vba刷新屏幕,选择一个单元格,甚至通过更改光标位置Lib user32 中的 SetCursor 方法 https://support.microsoft.com/en-gb/help/152969/visual-basic-procedure-to-get-set-cursor-position。除了用户实际移动鼠标之外,似乎什么都不起作用。

要重现该问题:插入大约 200 x 500 像素的 ActiveX 图像控件,向该控件添加 jpeg 图像,向工作表添加鼠标按下代码,向模块添加单击形状代码。


这非常hacky,但我发现隐藏和取消隐藏图像可以解决问题:

ActiveSheet.Shapes("bodypic").Visible = False
ActiveSheet.Shapes("bodypic").Visible = True
End Sub

我欢迎更优雅的答案!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

鼠标按下事件计时 的相关文章

  • 在用户窗体终止/关闭 VBA 时调用数组

    我有一个问题 我想在用户窗体关闭时将用户窗体的内容存储在数组中 我认为我的语法正确 但似乎不会在用户窗体初始化时重新填充 我尝试将数组放入其自己的模块中 但这也不起作用 有人愿意启发我吗 示例代码 Public Sub DPArrayStu
  • 循环浏览文件夹中的工作簿

    我正在尝试从文件夹中的所有工作簿复制某些单元格 下面的代码仅循环遍历第一个文件 VBA 新手 欢迎任何帮助 提前致谢 Sub Get Data Dim Directory As String Dim Filename As String D
  • 如何在VBA中将文本文件读取到数组中

    我正在尝试将制表符分隔的文本文件提取到数组中 我已经知道如何将该文本文件读入电子表格中 以下是我的代码 它运行良好 While Not EOF iFile Line Input iFile LineText Dim arr arr Spli
  • 防止在单元格中更改行时重新格式化字符

    我有一个带有格式化文本的单元格 其中包含我想要用行更改替换的某个子字符串 子字符串是带有方括号的 enterkey 这是这个问题的一个变体在 Excel 中将 HTML 标记 替换为 Alt Enter https stackoverflo
  • 写入抓取数据的 csv 文件时如何拆分项目名称

    我有兴趣使用 R 从网上抓取的数据创建 csv 或类似的 Excel 兼容文件 到目前为止 我通过执行以下操作来存储数据 require textreadr spiegel lt read html http www spiegel de
  • 从 CSV 中去除额外的文本限定符

    我有一个 CSV 其中某些字段由 符号分隔作为文本限定符 参见下面的例子 请注意 每个整数 例如 1 2 3 等 都应该是一个字符串 合格的字符串被 符号包围 1 2 3 qualifiedString1 4 5 6 7 8 9 10 11
  • 在单元格中查找以逗号分隔的多个值并返回以逗号分隔的多个值

    如果有人可以帮忙的话 我们将此表称为 1 我想在此处执行查找 可以将工作表 2 中 B 列的值引入工作表 1 中的 B 列 返回的多个值也应该用逗号分隔 我在这里尝试使用 textjoin 公式 但它搞砸的地方是 例如它将 A12 计为 A
  • Excel 公式转 SUMIF 日期属于特定月份

    我有以下格式的 Excel 数据 Date Amount 03 Jan 13 430 00 25 Jan 13 96 00 10 Jan 13 440 00 28 Feb 13 72 10 28 Feb 13 72 30 仅当月份位于时 我
  • 将整个工作表复制到 Excel 2010 中的新工作表

    我发现了类似的问题 涉及复制一个工作簿中的整个工作表并将其粘贴到另一个工作簿 但我感兴趣的是简单地复制整个工作表并将其粘贴到同一工作簿中的新工作表 我正在将 2003 xls 文件转换为 2010 xlsm 用于在工作表之间复制和粘贴的旧方
  • VBA在下一个空白行正确输入用户表单数据

    创建了一个用户表单 添加了一个文本框和一个组合框 添加了提交按钮 单击 提交 后 会将数据添加到电子表格中 据我所知和我所读到的 这是错误的 ActiveCell Value TextBox3 Text ActiveCell Offset
  • VBA - 如何从网站下载.xls并将数据放入Excel文件

    我设法使用 VBA 达到准备从网络下载 Excel 文件的程度 但我无法弄清楚如何实际下载该文件并将其内容放入我正在使用的 Excel 文件中 有什么建议么 谢谢 这是到目前为止的代码 Sub GetData Dim IE As Inter
  • 根据用户名获取广告详细信息

    我有一个代码可以从 AD 检索用户的详细信息 例如电子邮件地址 电话号码等 我当前使用的代码是 Set objSysInfo CreateObject ADSystemInfo strUser objSysInfo UserName msg
  • Excel:COUNTIF 函数将“小于”字符视为运算符

    预读说明 我使用的是 LibreOffice 而不是 Excel 但大多数功能应该适用于两者 我正在制作一个电子表格 其中有大量数据 对于每个属性 例如员工数量或姓名 我需要一个函数来计算包含每个不同值的行数 我已经提取了不同的值 现在我使
  • 两个数组相乘 - 区域小数分隔符问题

    Background 刚才 我回答了一个问题 我必须将两个相同大小的数组相乘 但是我注意到我的本地小数分隔符存在一个特殊问题 Sample Code Sub Sample Dim arr1 As Variant arr2 As Varian
  • 如何在 Javascript 中连接 C# ActiveX 事件处理程序

    我尝试使用几个代码片段将 ActiveX 对象与 Javascript 事件处理程序挂钩 我无法确定为什么事件处理程序没有被调用 带有项目的 Github 存储库 https github com JesseKPhillips Csharp
  • 如果不是,则必须删除单元格的第一个字符 #3Created 循环永远不会结束

    所以基本上 我需要删除主键字段中第二位数字不为 3 的所有记录 例如可以如下所示 39001 或者没有 3 我想要的是所有以非 3 开头的单元格 它们的行都被删除我想出了以下代码 它删除了所有单元格 但宏永远不会停止运行 Sub keep3
  • 粘贴数据后取消选择列

    这可能很简单 但我无法解决它 我可以使用以下命令释放复制数据的列Application CutCopyMode False但粘贴数据的列仍然保持选中状态 我尝试过ActiveSheet EnableSelection xlNone正如论坛之
  • ReDim 保留“下标超出范围”

    我正在尝试将数据从 2 个双精度数组移动到 2 个不同的双精度数组 我不确定大小是多少 因为我正在从第一个数组中随机抽取样本并将其放入第二个数组中 当我添加 ReDim Preserve 行时 出现下标超出范围错误 Function Cre
  • Excel VBA - 以编程方式列出用户窗体上控件的可用事件过程

    你好 我已经搜索过 google 但发现只有 1 页提到了如何在 MS Access 中执行此操作 但没有在 MS Excel 中执行此操作 此处 列出 MS Access 表单的控件及其事件 https stackoverflow com
  • 电子邮件正文为空,没有 .Display

    我读过这个 VBA Outlook 2010 收到邮件 正文为空 https stackoverflow com questions 42348518 vba outlook 2010 received mail body is empty

随机推荐

  • Yeoman 生成器中的“{.tmp,app}”是什么?

    我正在开始使用 Yeoman 工作流程 但我似乎无法完全理解 index html 文件中 usemin 任务的 备用搜索路径 例如 使用 yo angular 命令生成了 2 个块
  • 构建保留策略 - 最大构建数量

    我们有一个每天触发 5 到 10 次的构建定义 我们只想保留最后一个版本 我们如何通过构建保留策略来实现这一目标 该策略仅接受保留的最小数量 而不接受最大数量 在 TFS 之前 Xaml 构建可以配置为仅保留最后的 x 构建 例如 保留最后
  • Titan 顶点中心索引与 Neo4j 标签

    在接近这个问题时 我试图对这两种技术进行比较 我想知道你们中是否有人已经有处理其中任何一种或两种技术的经验 我主要对处理类似用例时的性能数字感兴趣 这两个概念之间的区别是全局索引和本地索引之间的区别 据我了解 Neo4j顶点标签允许您通过顶
  • 进入交互式会话以检查失败的单元测试

    如果单元测试失败 我希望能够进入交互式会话 最好使用 IPython 是否有捷径可寻 edit 我所说的 交互式会话 是指完整的 Python REPL 而不是 pdb shell 编辑编辑 作为进一步的解释 我希望能够启动一个交互式会话
  • Q_DECL_EXPORT关键字含义

    Q DECL EXPORT int main int argc char argv 这是做什么的Q DECL EXPORT before int main means 摘自QT docs https doc qt io qt 5 share
  • 使用 Spring 进行多部分文件上传:NoSuchMethodException: ...CommonsMultipartFile.()

    我正在尝试使用 javascript 上传图像XMLHttpRequest对象 但 Spring 不断抛出NoSuchMethodException 例外情况如下 java lang NoSuchMethodException org sp
  • ThreeJS中InstancedMesh和InterleavedBuffer的区别和使用

    任何人都可以帮助我们解决 Threejs 中 InstancedMesh 和 InterleavedBuffer 之间的区别吗 我对这两个主题都感到困惑 任何人都可以让我知道哪种是渲染大量几何图形的优化方法 提前致谢 实例化渲染和交错缓冲区
  • Restlet用json接收和响应实现post

    首先 我想知道我正在做的事情是否正确 我有一个场景 我将收到一个 json 请求 并且我必须用它来更新数据库 一旦数据库更新 我必须用 json 确认进行响应 到目前为止我所做的是创建类扩展应用程序 如下所示 Override public
  • 在 Ubuntu 20.04 上自动启动 MailHog

    我按照以下步骤在临时环境中安装了 MailHog sudo apt get y install golang go go get github com mailhog MailHog 为了手动启动该服务 我这样做 cd go bin Mai
  • Visual Studio:MSB3073 错误退出,代码为 1

    每个人 我正在 Visual Studio 2013 中编译 DCMTK 3 6 1 我的操作系统是 Windows 8 我还使用了 CMake 3 2 3 我已经为 ALL BUILD 项目成功编译了 x64 版本的调试版本和发布版本 但
  • 如何在基于自定义策略的授权中访问 dbcontext 和会话

    我们是否可以访问 dbcontext 来获取自定义基于策略的授权中的表数据和会话 任何人都可以帮助如何实现它 services AddAuthorization options gt options AddPolicy CheckAutho
  • Objective-C 中省略返回类型和参数类型

    如果未显式声明返回或参数类型 则假定它是方法和消息的默认类型 id 因此 从技术上讲 它是如何工作的 这是毫无疑问的 但是忽略该类型是否是明智的 或者这只是一种不好的做法 苹果有这方面的官方指南吗 这是不好的做法 这是 C 早期的遗留问题
  • 在 vscode 上找不到“openssl/crypto.h”文件

    即使我将包含路径添加到 openssl 我也收到以下编译错误 我在 MAC 上使用 vscode 你能告诉我如何修复它吗 Error main cpp 3 10 fatal error openssl crypto h file not f
  • GlassFish Server 更新中心安装超时

    我已将 GlassFish Server 实例安装到 Netbeans 中 并且正在尝试安装其更新中心 我在 Windows 7 下以管理员身份运行 Netbeans 我的互联网连接速度很快 pkg oracle com 似乎从浏览器加载得
  • 在 Android 上使用 Firebase Analytics 时出现 SERVICE_VERSION_UPDATE_REQUIRED 错误

    我想将 Firebase Analytics 集成到我的项目中 我跟着Guide https firebase google com docs android setup但它给了我这个警告 06 30 18 38 30 514 W FA 2
  • 如何在调用下一个函数之前等待 firebase.database().ref('users/' + userId).set() 完成?

    我使用以下异步函数将数据写入我的 firebase 实例 function writeUserData uid fn ln userEmail firebase database ref users uid set firstName fn
  • 如何从 .wav 文件中提取特定频率范围?

    I m really声音处理方面的新知识 所以也许我的问题很简单 我想要做的是使用 R 从 wav 文件中提取特定的频率范围 假设为 150 400 Hz 换句话说 我想创建另一个波形文件 wave2 其中仅包含我想要的频率分量 指定 15
  • Github Actions 和 npm - npm:找不到命令

    我已经在 github actions 上创建了一个部署操作 这一切都适用于composer install 和 git pull master 分支 然而 在我的数字海洋水滴上 我遇到了问题bash line 4 npm command
  • 调用相机时,三星 Intent For OnActivityResult 为 Null

    我正在使用以下代码从相机获取图片 除三星外 其他手机均运行良好 请让我知道我做错了什么 final File root new File Environment getExternalStorageDirectory File separa
  • 鼠标按下事件计时

    我被要求编写代码 使其能够单击 Excel 中的图像并在其顶部添加形状 这是物理治疗师的身体图 该形状将指示患者疼痛的部位 我的代码通过使用 ActiveX 图像控件的鼠标按下事件来完成此操作 Private Sub bodypic Mou