如何制作 Application.SendKeys“{TAB}”运行?我正在尝试在表单填写应用程序中使用它

How do I make Application.SendKeys "{TAB}" run? I am trying to use this on a form filling application

我以前在浏览器上尝试过这种方法,我使用 Excel VBA 填写表单的详细信息,但是当我尝试将其用于软件时,它不是'工作。它可能与我正在使用的内容没有任何关系,因为当我手动单击 window.

上的第一个文本框时,我只是在使用 SendKeys 函数
Sub enter_details()
    Dim i As Integer
    Dim des, name, addr As String
    Application.Wait Now + #12:00:05 AM#

    For i = 5 To 15
        des = Cells(i, 2).Value
        name = Cells(i, 3).Value
        addr = Cells(i, 4).Value
        
        Application.SendKeys (des)
        Application.Wait Now + #12:00:01 AM#
        Application.SendKeys ("{TAB}")
        Application.Wait Now + #12:00:01 AM#
        SendKeys (name)
        Application.Wait Now + #12:00:01 AM#
        Application.SendKeys ("{TAB}")
.
.
.
    Next
End Sub

有人可以指出我在这里做错了什么吗?

提前致谢!

首先注意一些:Dim des, name, addr As String 仅将 addr 声明为 String 但所有其他声明为 Variant 在 VBA 中您需要声明一个类型每个 变量Dim des As String, name As String, addr As String,行计数变量也需要是Long 类型,因为Excel 有更多行适合Integer

此外,您在此处使用的括号 Application.SendKeys ("{TAB}") 并未按照您的预期进行。它必须是:

Application.SendKeys "{TAB}"  'no Call and no `=` sign no brackets

Call Application.SendKeys("{TAB}")

最后,如果您的应用程序不对选项卡做出反应,而是对所有其他 SendKeys 做出反应,则此应用程序会以某种方式干扰 SendKeys(不兼容)或阻止某些内容。实际上,当您编写代码时,它应该可以工作。我无法重现您的问题,但我确实看到了正在发送的标签。