【发布时间】:2018-05-16 01:06:58
【问题描述】:
大家下午好,
我创建了一些代码,可以自动将我登录到我的作品网站,但是当尝试让 VBA 将值输入到其中一个搜索框时,我总是收到错误 438:对象不支持此属性或方法。
这是我下面的代码,请你帮忙:
Option Explicit
Const MyUserName As String = "username"
Const MyPassword As String = "password"
Const READYSTATE_COMPLETE As Integer = 4
Dim objIE As Object
Sub LoginScript()
Dim Message, Title, Default
Dim MyValue As String
Dim currenttime As Date
Set objIE = CreateObject("InternetExplorer.Application")
If MsgBox("Do you want to search for a member?", vbYesNo, "Login") =
vbNo Then
With objIE
.Visible = True
.Silent = True
.Navigate ("https://XXXXXXXXX.com/")
Do Until .ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
.Document.all.txtuserid.Value = MyUserName
.Document.all.txtpassword.Value = MyPassword
.Document.all.save_button.Click
Do Until .ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
End With
Else
Message = "Please enter clients CTC number" ' Set prompt.
Title = "Member Search" ' Set title.
' Display message, title, and default value.
MyValue = InputBox(Message, Title)
With objIE
.Visible = True
.Silent = True
.Navigate ("https://XXXXXXXXX.com/")
Do Until .ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
.Document.all.txtuserid.Value = MyUserName
.Document.all.txtpassword.Value = MyPassword
.Document.all.save_button.Click
Do Until .ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
currenttime = Now
Do Until currenttime + TimeValue("00:00:10") <= Now
Loop
Do Until .ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
.Document.getElementsById("txtClientRef").Value = MyValue <------ Errors Here
End With
End If
End Sub
【问题讨论】:
-
为什么您使用与登录凭据不同的方法来填写搜索字段?顺便说一句,这是一个非常糟糕的主意。
-
我尝试了同样的方法,但也没有用。我是唯一可以访问包含代码的文件的人,并且我有密码保护文件
-
exceldevelopmentplatform.blogspot.com/2018/02/… 有助于将焦点设置在您正在操作的控件上。
-
我仍然收到错误 424