I';我正在尝试使用VBA来单击“a”;登录";自动登录网站的按钮

I';我正在尝试使用VBA来单击“a”;登录";自动登录网站的按钮,vba,internet-explorer,automation,ie-automation,Vba,Internet Explorer,Automation,Ie Automation,我一直在尝试使用VBA自动提交登录凭据,我可以获得要填充的用户名和密码字段,但我无法获得单击登录按钮的代码。我在这里和其他网站上找到了很多解决方案,但都没有成功。这是我的代码(我尝试过点击按钮): 要执行单击,只需在登录按钮元素上调用单击方法,如下所示: Call HTMLDoc.all.Logon.Click Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sleep (500) 但是,问题是,

我一直在尝试使用VBA自动提交登录凭据,我可以获得要填充的用户名和密码字段,但我无法获得单击登录按钮的代码。我在这里和其他网站上找到了很多解决方案,但都没有成功。这是我的代码(我尝试过点击按钮):


要执行单击,只需在登录按钮元素上调用
单击
方法,如下所示:

Call HTMLDoc.all.Logon.Click
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sleep (500)
但是,问题是,网站仅在您输入用户名和密码后才启用该按钮。如果您尝试在填写用户名和密码后立即单击该按钮,则为时过早,该按钮仍处于禁用状态,因此您需要等待片刻

要在VBA中等待,可以按如下方式导入WinAPI睡眠函数:

Call HTMLDoc.all.Logon.Click
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sleep (500)
然后等待给定的毫秒数,如下所示:

Call HTMLDoc.all.Logon.Click
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sleep (500)
组合代码:

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub Demo()
  Dim MyURL As String
  Dim MyBrowser As InternetExplorer
  Dim HTMLDoc As HTMLDocument

  MyURL = "https://www.oms.itradenetwork.com/secure/login/logon.cfm"
  Set MyBrowser = New InternetExplorer
  MyBrowser.Silent = True
  MyBrowser.Navigate MyURL
  MyBrowser.Visible = True

  Do
    DoEvents
  Loop Until MyBrowser.ReadyState = READYSTATE_COMPLETE

  Set HTMLDoc = MyBrowser.Document
  HTMLDoc.all.UserName.Value = "MyName"
  HTMLDoc.all.Password.Value = "MyPassword"

  ' First wait 500ms to give the webite enough time to enable the button
  Sleep (500)
  ' then click the button
  Call HTMLDoc.all.Logon.Click
End Sub

要执行单击,只需在登录按钮元素上调用
单击
方法,如下所示:

Call HTMLDoc.all.Logon.Click
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sleep (500)
但是,问题是,网站仅在您输入用户名和密码后才启用该按钮。如果您尝试在填写用户名和密码后立即单击该按钮,则为时过早,该按钮仍处于禁用状态,因此您需要等待片刻

要在VBA中等待,可以按如下方式导入WinAPI睡眠函数:

Call HTMLDoc.all.Logon.Click
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sleep (500)
然后等待给定的毫秒数,如下所示:

Call HTMLDoc.all.Logon.Click
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sleep (500)
组合代码:

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub Demo()
  Dim MyURL As String
  Dim MyBrowser As InternetExplorer
  Dim HTMLDoc As HTMLDocument

  MyURL = "https://www.oms.itradenetwork.com/secure/login/logon.cfm"
  Set MyBrowser = New InternetExplorer
  MyBrowser.Silent = True
  MyBrowser.Navigate MyURL
  MyBrowser.Visible = True

  Do
    DoEvents
  Loop Until MyBrowser.ReadyState = READYSTATE_COMPLETE

  Set HTMLDoc = MyBrowser.Document
  HTMLDoc.all.UserName.Value = "MyName"
  HTMLDoc.all.Password.Value = "MyPassword"

  ' First wait 500ms to give the webite enough time to enable the button
  Sleep (500)
  ' then click the button
  Call HTMLDoc.all.Logon.Click
End Sub

这个网站是用Sencha框架创建的