我以前在浏览器上尝试过这种方法,在浏览器中我使用Excel VBA填写表单的详细信息,但当我试图将其用于软件时,它不起作用。它可能与我使用的内容无关,因为当我手动单击窗口上的第一个文本框时,我只是在使用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
有人能指出我在这里做错了什么吗?
提前感谢!
首先注意:在VBA中,Dim des, name, addr As String
只将addr
声明为String
,而将其他所有声明为Variant
。您需要为每个变量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
(不兼容(,或者它正在阻塞某些内容。事实上,当你编写代码时,它应该可以工作。我无法复制您的问题,我肯定看到了正在发送的标签。