很多时候大家都需要登录网站, 查询一下信息。可不可以在office中登录呢?可以,用VBA即可。
需要添加到引用
Microsoft Internet Controls
Microsoft HTML Object Library
Sub loginRenRen()
Dim ie As InternetExplorer
Dim doc As HTMLDocument
Set ie = New InternetExplorer
ie.Navigate "http://www.renren.com/"
ie.Visible = True
'http://www.renren.com/Home.do 个人主页
Do
DoEvents
Loop Until ie.ReadyState = 4 '在网页没有完全下载之前,VB 转让控制权
If ie.LocationURL = "http://www.renren.com/Home.do" Then Exit Sub '如果已经登录,退出程序
Set doc = ie.Document
doc.getElementById("email").Value = "用户名"
doc.getElementById("password").Value = "密码"
doc.getElementById("login").Click
doc.Close
Set doc = Nothing
'ie.Quit
Set ie = Nothing
End Sub
————————————————
版权声明:本文为CSDN博主「to_gengqing」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/to_gengqing/article/details/5498804
https://blog.csdn.net/to_gengqing/article/details/5498804?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_antiscanv2&utm_relevant_index=2
=======另外文章
这里有两问题:
1、ie.Navigate "xxx_login.php"打开网页后,在网页没有载入完毕立即去获取网页控件会失败;
2、ie.document.GetElementsByName("pwuser").value获取控件中是不是Element而不是Elements.
dim ie
Set ie=CreateObject("InternetExplorer.application")
ie.Visible=true
ie.Navigate "xxx_login.php"
'等待网页载入完成
Do
Sleep 200
Loop Until IE.ReadyState = 4
ie.document.GetElementByName("pwuser").value = "用户名"
ie.document.GetElementByName("pwpwd").Value = "密码"
ie.document.GetElementByName("submit").Click追问: VBA
追答:在最前面添加语句Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
下面是例子:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub a()
Sleep 2000
MsgBox "1"
End Sub
https://blog.csdn.net/weixin_36212334/article/details/117737838
=============另篇文章
用VBA制作一个用户窗体,如果是多个网页多个用户登入,就多写几个,用按钮控制
Private Sub CommandButton1_Click() '打开网址按钮代码
Me.WebBrowser1.Navigate "输入要打开的网址"
Action = 2
End Sub
Private Sub CommandButton2_Click() '设定用户和密码与网页嫁接
Set f = Me.WebBrowser1.Document.all("EinForm0")
f.elements("AccountId").Value = '用户名
f.elements("Password").Value = '密码
Me.WebBrowser1.Document.all("EinForm0_SubmitBtn").Click
Action = 3
End Sub
来源:http://www.excelpx.com/thread-222297-1-1.html
===============另篇文章
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td align="center" valign="middle"><table width="80%" height="94" border="0" align="center" cellpadding="0" cellspacing="1" bordercolor="#cccccc" class="tab2"> <tr> <td height="30" colspan="2" align="center" class="font14pxB1"> <span id="myLabel" class="error1"></span> </td> </tr> <tr> <td width="57%" height="30" align="right" class="font14pxB1">用 户 名: <input name="RealName" type="text" value="hdtianyh" id="RealName" style="width:170px;" /> </td> <td width="43%" align="left" class="font14px1"> 请输入您的用户名、密码, <span id="RequiredFieldValidator" style="color:#FF6600;display:none;"><br><img src=/images/warn.gif>请填写用户名!<br></span></td> </tr> <tr align="right"> <td height="30" class="font14pxB1">密 码: <input name="Password" type="password" id="Password" value="000000" style="width:170px;" /> </td>
上面是源文件,下面是方法
解决了 应该把 Set iea = CreateObject("InternetExplorer.Application")
放在 iea.navigate "http://172.17.136.114/", False就可以了。
Private Sub Workbook_Open()
Dim iea
Set iea = CreateObject("InternetExplorer.Application")
iea.navigate "http://172.17.136.114/", False
Do Until iea.ReadyState = 4
DoEvents
Loop
iea.document.all("RealName").Value = "hdqinyj"
iea.document.all("Password").Value = "000000"
iea.document.all("Button1").Click
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。