如何制作 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
(不兼容)或阻止某些内容。实际上,当您编写代码时,它应该可以工作。我无法重现您的问题,但我确实看到了正在发送的标签。
我以前在浏览器上尝试过这种方法,我使用 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
(不兼容)或阻止某些内容。实际上,当您编写代码时,它应该可以工作。我无法重现您的问题,但我确实看到了正在发送的标签。