excel - VBA excel键检测

标签 excel vba

我今天开始使用 VBA,我正在制作蛇。

我遇到了一个小问题:excell确实没有简单的按键检测方法

处理这个问题的最佳方法是什么?

如果您要回答:使用 onkey 方法:

我无法完成这项工作,因为我需要一个新的子,我想在其中给出我的方向数组

(暗方向(2)作为整数方向(1)是x移动方向(2)是Y移动)

这不起作用,因为新的子不能编辑另一个子的变量

我怎么能做到这一点?

最佳答案

关键测试 将测试 QWERTY 键是否被按下。

完成将停止关键测试

Public ImDone As Boolean
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Sub KeyTest()
    ImDone = False
    Do Until ImDone
        DoEvents
        If (GetAsyncKeyState(vbKeyQ)) Then
            MsgBox "Got a q"
            Exit Sub
        End If
        If (GetAsyncKeyState(vbKeyW)) Then
            MsgBox "Got a w"
            Exit Sub
        End If
        If (GetAsyncKeyState(vbKeyE)) Then
            MsgBox "Got an e"
            Exit Sub
        End If
        If (GetAsyncKeyState(vbKeyR)) Then
            MsgBox "Got an r"
            Exit Sub
        End If
        If (GetAsyncKeyState(vbKeyT)) Then
            MsgBox "Got a t"
            Exit Sub
        End If
        If (GetAsyncKeyState(vbKeyY)) Then
            MsgBox "Got a y"
            Exit Sub
        End If
    Loop
    MsgBox "done"
End Sub

Sub Finish()
    ImDone = True
End Sub

关于excel - VBA excel键检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24971848/

相关文章:

excel - 为什么我的 VBA SUMIFS 函数返回零?

javascript - 在 MVC 应用程序中将数据导出到 Excel

excel - 将 SAS X 命令与 PCFILES 服务器一起使用

vba - 使用VBA删除包含特定单词的行

python - 如何让 python 等到 Excel 宏/刷新完成

c# - 如何在满足条件时停止代码 C#,调试

excel - 如何防止Excel在大文件上运行宏时崩溃?

excel - 为什么我不能在 Excel 2016 VBA 中 ReDim 索引为 LongPtr 或 LongLong 的数组

excel - 如何在Excel VBA中获取 'Cell'对象

c# - COM 服务器如何在具有不同 ComInterfaceType 枚举的 C# 类库中编码可为空?