在宏运行结束时打开 NUMLOCK

2023-12-06

什么代码的作用:我有一个代码可以在屏幕上移动鼠标,打印屏幕并将其粘贴到 Excel 中。

Problem:由于某种原因,我的代码总是(绝对没有例外)在每次运行后关闭 NUMLOCK 键。

到目前为止我尝试过的:我四处搜寻,发现了 SendKeys (NUMLOCK),理论上它是有效的(尽管这对用户来说似乎是一个很大的问题)。

我想做的事:我想在每次宏运行后打开数字锁定,

Obs1:我不知道是什么导致宏首先将其关闭。修复导致此问题的任何原因将是理想的选择,但由于我不知道问题是什么,所以我首先想让我的代码正常运行。一旦找到打开 NUMLOCK 键的方法,我就会着手解决这个问题。

问题:我可以使用 SendKeys 执行此操作吗?我使用得当吗?有没有更好的办法?

Obs2:由于这是一个更大的代码,一旦解决了这个问题,我将发布另一个包含整个代码的问题,并讨论导致问题的原因。

Code我正在尝试起诉以打开数字锁定:

Application.Sendkeys (NUMLOCK)

还尝试过:

Application.Sendkeys ("NUMLOCK")

and

Application.Sendkeys {NUMLOCK}

您可以通过几个 Windows API 调用直接设置键状态。移植自keybd_event 函数的 MSDN 页面:

#If VBA7 Then
    Private Declare PtrSafe Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, _
                                                              ByVal dwFlags As LongPtr, ByVal dwExtraInfo As LongPtr)
    Private Declare PtrSafe Function GetKeyboardState Lib "user32.dll" (ByVal lpKeyState As LongPtr) As Boolean
#Else
    Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, _
                                                      ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Private Declare Function GetKeyboardState Lib "user32.dll" (ByVal lpKeyState As Long) As Boolean
#End If  

Private Const KEYEVENTF_EXTENDEDKEY As Long = &H1
Private Const KEYEVENTF_KEYUP As Long = &H2
Private Const VK_NUMLOCK As Byte = &H90
Private Const NumLockScanCode As Byte = &H45

Private Sub ToggleNumlock(enabled As Boolean)
    Dim keystate(255) As Byte
    'Test current keyboard state.
    GetKeyboardState (VarPtr(keystate(0)))
    If (Not keystate(VK_NUMLOCK) And enabled) Or (keystate(VK_NUMLOCK) And Not enabled) Then
        'Send a keydown
        keybd_event VK_NUMLOCK, NumLockScanCode, KEYEVENTF_EXTENDEDKEY, 0&
        'Send a keyup
        keybd_event VK_NUMLOCK, NumLockScanCode, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0&
    End If
End Sub

像这样称呼它:

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

在宏运行结束时打开 NUMLOCK 的相关文章

  • 我可以用文本框设置变量名称吗? excel

    我可以使用 TextBox Vba Excel 设置变量的名称吗 我必须以在文本框中写入组名称并单击命令按钮的方式输入新的产品组 代码必须从文本框中获取字符串 并将该字符串设置为新创建的数组的名称 我只想在运行时创建一个新变量 或数组 据信
  • 复制一张工作表上的静态范围,然后根据单元格中的单个值粘贴到另一张工作表中的动态范围

    我对这个问题分为三个部分 我在 Sheet1 A1 中有一个带有周数的单元格 我在 Sheet1 B1 F1 中有一个需要复制的静态范围 然后 我需要将该值粘贴到 Sheet2 中的动态范围中 偏移量为行的周数 这是我正在为我经常使用的工作
  • 使用 Apache POI Excel 写入特定单元格位置

    如果我有一个未排序的参数 x y z 列表 是否有一种简单的方法将它们写入使用 POI 创建的 Excel 文档中的特定单元格 就好像前两个参数是 X 和Y 坐标 例如 我有如下行 10 4 100 是否可以在第 10 行第 4 列的单元格
  • 将ADODB二进制流转换为字符串vba

    我有以下问题 我有一个存储在服务器上的 CSV 文件 但它有 3 个字符作为分隔符 我想从 URL 加载数据并使用 作为分隔符将数据填充到 Excel 页面的列中 到目前为止 我找到了使用 ADODB 记录集从网站加载文件的代码 但我无法进
  • 文件夹.文件的相对路径

    我有一个 Excel 文件 在同一文件夹中还有一个包含我想要包含的 CSV 文件的文件夹 使用 来自文件夹 查询 第一步将给出以下查询 Folder Files D OneDrive Documents Health Concept2 现在
  • 定义 js-xlsx 单元格范围

    我正在尝试使用 js xlsx 读取 Excel 值 我可以使用以下代码从工作簿工作表中获取单元格值 if typeof require undefined XLSX require xlsx var workbook XLSX readF
  • 读取R中打开的Excel文件

    有没有办法将打开的Excel文件读入R 当Excel中打开一个excel文件时 Excel会对文件加锁 比如R中的read方法无法访问该文件 你能绕过这个锁吗 Thanks 编辑 这发生在带有原始 Excel 的 Windows 下 发生错
  • 将html表格保存到excel中[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我必须编写一个程序 定期读取网页并将
  • Java Microsoft Excel API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如果总和为 0,则查找并删除带标题的最后一列

    我想创建一个宏 查找带有标题的最后一列 并仅当该列的总和等于零时才将其删除 到目前为止 这是我尝试过的 Dim LastCol As Long Dim i As Long With ThisWorkbook Sheets Sheet1 Fo
  • VSTO 替代方案 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 VSTO 有哪些替代方案 ManagedXll 能做什么而 VSTO 不能 你什么时候使用其中一个而不
  • Redim Preserve 给出“下标超出范围”

    我想要Redim Preserve一个数组我不断收到错误 下标超出范围 我知道只有最后一个维度的大小可以更改 这正是我正在做的事情 这里出了什么问题 数组的类型是Variant BmMatrix Sheets BENCH Range a60
  • 从 MS Access 调用存储过程会导致错误 3146

    当我使用下面所示的代码从 MS Access 前端调用 SQL Server 存储过程时 它停止运行并抛出运行时错误 3146 这个存储过程在 SQL Server 中工作正常 但是当我从 MS Access 运行时 它首先工作 但突然停止
  • 使用 ClosedXML 创建数据透视表

    我正在尝试使用 ClosedXML V0 91 1 创建数据透视表 但我不断遇到问题 因为我的 Excel 文件包含不可读的内容 然后 Excel 工作簿在单击时删除了我的数据透视表Yes below 下面是我击中时的显示Yes 它正在删除
  • VBA 架构技巧 - 宏封装

    我拼凑了 Excel 的概念证明 以从数据库获取数据 并需要将其打包 以便可以将其分发给我们的客户 我的第一次尝试只是将所有代码放入代码模块中 但随后在 Excel 中我可以看到宏列表中的所有模块 而我实际上只想要列表中的主要模块 我猜想我
  • 是否存在用于开放 xml Excel 编辑的良好包装类和/或库?

    我正在寻找一个不错的库 用于在我们的 Windows 服务器上编辑和 或生成 Excel 文档 我觉得 open xml sdk 可能是可行的方法 但对我来说 学习曲线似乎很陡峭 而且我们的开发时间有限 我认为编辑 Excel 文档不应该那
  • 如果 Excel 中的表格包含单元格引用,如何对其进行排序?

    我在工作表 1 中有一个 Excel 数据表 它引用了许多其他工作表中的各种不同单元格 当我尝试对工作表进行排序或过滤时 引用会随着单元格的移动而发生变化 但是 我不想手动进入每个单元格并在各处插入 符号 因为有些引用是连续的 我可能想稍后
  • 跳过行:将数据从 SSIS 导出到 Excel 文件

    我正在尝试使用 SSIS 将数据从 SQL Server 数据库导出到 Excel 文件中 我希望从第 6 行插入数据 第 5 行有标题 我可以映射标题名称Excel 目标编辑器 通过编写 SQL 命令到 SQL 表头 SELECT FRO
  • VBA Excel:将范围值分配给新范围

    我在将一个工作簿范围中的值分配给当前工作簿中的某个范围时遇到问题 当我使用 Range A1 C1 分配我的范围时 此代码工作正常 但是当我使用 Range Cells 1 1 Cells 1 3 定义我的范围时 该函数会失败 Sub Co
  • 实例化 Microsoft.Office.Interop.Excel.Application 对象时出现错误:800700c1

    实例化 Microsoft Office Interop Excel Application 以从 winforms 应用程序生成 Excel 时 出现以下错误 这之前是有效的 但突然间它停止工作了 尽管代码和 Excel 版本没有变化 我

随机推荐

  • easeljs 将图像分割成几部分

    我是 easeljs 的新手 想知道如何将图像分割成给定数量的块 根据我到目前为止收集到的信息 我应该使用 SpriteSheets 来完成此任务 然而 我见过的唯一教程是在一张 SpriteSheet 中包含多个图像的教程 而不是将一张图
  • 服务器发送事件在 Google Chrome 中不起作用

    这是我的服务器 JSP 代码 Server Date jsp 这是我的客户端 jsp 页面 Client Serverdate jsp
  • 将一列 json 字符串转换为一列数据

    我有一个大约 30000 行的大数据框和一个包含 json 字符串的列 每个 json 字符串都包含许多变量及其值 我想将此 json 字符串分解为数据列 两行看起来像 0 a 1 b 2 c 3 1 a 4 b 5 c 6 我想将其转换为
  • 在各州之间共享 $Scope 数据

    我正在尝试从孩子访问父状态 我尝试过这个 但它不起作用 angular module myApp controller compareCtrl scope function scope scope test scope parent ser
  • 尝试了解 REPL 上声明的类在内部是如何处理的

    我试图了解 REPL 中范围界定的工作原理 我尝试按照 Joshua Suereth 的 Scala 深入 一书的第 5 1 1 节进行操作 这是在 Windows XP Java 7 和 Scala 2 9 1 上进行的 我声明一个类Di
  • 如何使用 JFileChooser 查找文件位置

    有没有一种方法可以用来简单地查找文件位置 我试图允许用户选择一个文件并打开它 但我必须让 JFileChooser 选择文件并将位置发送到另一个方法 最好的方法是什么 中的例子javadoc显示执行此操作 JFileChooser choo
  • 生成随机订单号但阻止在 WooCommerce 中重新生成

    我试图在创建订单号时添加一个随机字符串 因为默认的序列号很容易被猜到 我尝试了这个片段 function generate random string length 16 return substr str shuffle str repe
  • bcrypt 不是 azure 应用服务上的有效 win 32 应用程序

    为了使用 Node 库 Sharp 进行一些图像处理 我必须将 Azure 应用服务上的节点可执行文件升级到 64 位 我通过手动下载可执行文件然后将其路径设置为IISNode yml 不幸的是 当我启动应用程序时 它会抛出以下错误 应用程
  • 将 .obj 转换为 .js 文件

    我已经浏览了不同的 Three js 示例 某些示例使用 js 或 bin 文件而不是 obj 文件 例如用于 webgl materials cars html 示例 如何获取 obj 文件的 js 文件 The 三 js编辑器 转换器
  • 将 jquery 函数应用于 ajax 内容

    我想将此功能应用于由ajax加载的内容 问题是 该功能不适用于此类内容 这个每个功能有某种解决方法吗 liquidcam each function index if this width this height this parent p
  • 跳跃扭曲的光标

    我正在尝试使用 Objective C 沿着任何 UI 元素外部的路径移动 Mac 光标的位置 不仅仅是在某些窗口上 而是在整个屏幕上 与鼠标悬停的位置无关 我不想直接将鼠标扭曲到某个位置 而是逐步将其移动到那里 即迭代循环 并在每次迭代中
  • gets.chomp 而不移动到新行

    我了解自动在末尾的 nputs and gets 以及如何处理这些问题 但是有没有办法在按 Enter 进行输入后保持显示点 光标位置 如果愿意的话 移动到新行gets e g print Hello my name is a gets c
  • 如何在Python中使用nosetest/unittest断言输出?

    我正在为下一个函数编写测试 def foo print hello world 所以当我想测试这个函数时 代码将是这样的 import sys from foomodule import foo def test foo foo outpu
  • Web 应用程序问题(web.config 错误) 使用 IIS7.5 和 ASP.NET v2 的 HTTP 500.19

    这让整个团队都快疯了 IIS 或我们的 Web 服务器肯定有一些简单的错误配置部分 但每次我们尝试在 IIS 7 5 上运行 ASP NET Web 应用程序时 我们都会收到以下错误 这是完整的错误 HTTP Error 500 19 In
  • .NET NetworkStream.EndWrite() 写入的字节数

    MSDN文档明确指出 获取到NetworkStream后 可以调用EndWrite方法 成功完成发送操作并返回数量 发送的字节数 强调我的 但是 它什么也不返回 void public override void EndWrite IAsy
  • PHP,一个奇怪的变量范围?

    这更多的是一个关于 为什么 然后 如何做 的问题 但它已经困扰我好几天了 目前 我正在使用 CodeIgniter 进行一些工作 并暂时从 Ruby 返回到 PHP 这让我对以下作用域魔法感到困扰
  • 使用可重用图表更新 d3.js 中的 HTML 表格

    我有这个可重复使用的模式来创建一张桌子 灵感来自http bl ocks org 3687826 我对此有两个问题 这是函数 d3 table function config var columns var tbl function sel
  • ggplotly 从单个方面删除数据

    我正在尝试为闪亮的应用程序创建一个绘图 我遇到了有关多面图的某些布局的问题 每当有四个小平面并且它们位于 2x2 网格中时 左下小平面不会显示任何数据 即使数据存在于ggplot数字 当 3x2 网格中有 6 个面且左下角再次被丢弃时 也会
  • 类型同义词与类型类约束是否可能?

    请随意更改标题 我只是经验不足 不知道到底发生了什么 所以 我正在松散地编写一个程序this 并写下了这个 与原文一样 type Row a a type Matrix a Row a 那里没什么特别的 然而 我发现自己编写了几个具有如下类
  • 在宏运行结束时打开 NUMLOCK

    什么代码的作用 我有一个代码可以在屏幕上移动鼠标 打印屏幕并将其粘贴到 Excel 中 Problem 由于某种原因 我的代码总是 绝对没有例外 在每次运行后关闭 NUMLOCK 键 到目前为止我尝试过的 我四处搜寻 发现了 SendKey