vba点击点击网址按钮添加微信信

I can't for the life of me figure out how to click the button below with VBA. Any help would be appreciated. I've been able to populate the username/password fields since they have a name so I use getElementsByName but the button doesn't have a name or ID.
The specific button code is:
&table class="button"&&tr&&td&&div class="button-left"&&input type="submit"
class="form-button"
value="Submit"
Here is the full script/form code in case it helps
&form name="loginFormBean" method="post" action="/XXXXXXXX/login.do" onsubmit="return validateForm(this)"&
&TABLE border="0" cellpadding="5" cellspacing="0"&
&TD class="bigGreyContent" nowrap&User ID&/TD&
&TD class="bigGreyContent" align="left"&
&input type="text" name="username" maxlength="50" size="40" value="" class="bgGreenColor"&
&TD class="bigGreyContent" nowrap&Password&/TD&
&TD class="bigGreyContent" align="left"&
&input type="password" name="password" maxlength="50" size="40" value="" class="bgGreenColor"&
&TD colspan="2" align="center"&
&table class="button"&&tr&&td&&div class="button-left"&&input type="submit"
class="form-button"
value="Submit"
&&/div&&div class="button-right"&&/div&&/td&&/tr&&/table&
EDIT: I have the following references enabled (in addition to the default ones):
Microsoft HTML Object Library
Microsoft Internet Controls
Microsoft WinHTTP Services, Version 5.1
Microsoft XML, v6.0
My current code is:
Sub XXXX()
Dim objIE As InternetExplorer
Dim http As New MSXML2.XMLHTTP60
Dim html As New HTMLDocument
Dim btn As Object
Set objIE = New InternetExplorer
Set btn = html.getElementsByClassName("button-left")(0).getElementsByTagName("input")(0)
objIE.Visible = True
objIE.navigate "http://XXXX/login.jsp"
Do While objIE.Busy = True Or objIE.readyState && 4: DoEvents: Loop
objIE.document.getElementsByName("username")(0).Value = "XXXX"
objIE.document.getElementsByName("password")(0).Value = "YYYY"
解决方案 Assuming class="button-left" is the first occurrence within your html, try this:
Dim btn As Object
Set btn = html.getElementsByClassName("button-left")(0).getElementsByTagName("input")(0)
You should add Microsoft HTML Object Library and Microsoft XML v6.0 if you haven't already, from Tools -& References.
Currently you are stuck between your method and my method. You need to pick one so please try this:
Sub XXXX()
Dim http As New MSXML2.XMLHTTP60
Dim html As New HTMLDocument
Dim btn, usr, psw As Object
With CreateObject("MSXML2.serverXMLHTTP")
.Open "GET", "http://XXXX/login.jsp", False
html.body.innerHTML = .responseText
Set usr = html.getElementsByTagName("Form")(0).getElementsByTagName("input")(0)
Set psw = html.getElementsByTagName("Form")(0).getElementsByTagName("input")(1)
Set btn = html.getElementsByTagName("Form")(0).getElementsByTagName("input")(2)
usr.Value = "Username"
psw.Value = "Password"
Set html = Nothing: Set btn = Nothing: Set usr = Nothing: Set psw = Nothing
本文地址: &
我无法为我的生活找出如何用VBA点击下面的按钮。任何帮助将不胜感激。我已经能够填写用户名/密码字段,因为它们有一个名称,所以我使用getElementsByName,但按钮没有名称或ID。
具体按钮代码是:
& table class =“button”&& tr&& td&& div class =“button-left”&& input type =“submit”class =“form-button”value =“Submit”&
以下是完整的脚本/表单代码,以帮助您
& form name =“loginFormBean”method =“post”action =“/ XXXXXXXX / login.do”onsubmit =“return validateForm(this)”& & TABLE border =“0”cellpadding =“5”cellspacing =“0”& & TR& & TD class =“bigGreyContent”nowrap&用户ID& / TD& & TD class =“bigGreyContent”align =“left”& & input type =“text”name =“username”maxlength =“50”size =“40”value =“”class =“bgGreenColor”& & / TD& & / TR& & TR& & TD class =“bigGreyContent”nowrap&密码& / TD& & TD class =“bigGreyContent”align =“left”& & input type =“password”name =“password”maxlength =“50”size =“40”value =“”class =“bgGreenColor”& & / TD& & / TR& & TR& & TD colspan =“2”align =“center”& & BR& & table class =“button”&& tr&& td&& div class =“button-left”&& input type =“submit”class =“form-button” =“提交”&& / div&& div class =“button-right”&& / div&& / td&& / tr&& / table& & / TD& & / TR& & / TABLE& & / form&
编辑:启用了以下引用(除了默认值):
Microsoft HTML对象库 Microsoft Internet控件 Microsoft WinHTTP服务版本5.1
Microsoft XML,v6.0
我目前的代码是:
Sub XXXX()
Dim objIE As InternetExplorer
Dim http As New MSXML2.XMLHTTP60
Dim html As New HTMLDocument
Dim btn As Object
Set objIE = New InternetExplorer
Set btn = html.getElementsByClassName( “button-left”)(0).getElementsByTagName(“input”)(0) objIE.Visible = True
objIE.navigate“http://XXXX/login.jsp” Do While objIE.Busy = True或objIE.readyState&& 4:DoEvents:Loop
objIE.document.getElementsByName(“username”)(0).Value =“XXXX” objIE.document.getElementsByName(“password”)(0).Value =“YYYY “ btn.Click
解决方案 假设class =“button-left”是您的html中第一次出现,请尝试:
Dim btn As Object 设置btn = html.getElementsByClassName(“button-left”)(0).getElementsByTagName(“input”)(0) btn.Click
您应该添加 Microsoft HTML对象库和 Microsoft XML v6.0 如果您还没有,从工具 - &参考。
目前你被困在你的方法和我的方法之间。您需要选择一个,请尝试这样:
Sub XXXX() Dim http As New MSXML2.XMLHTTP60
Dim html作为新的HTMLDocument
Dim btn,usr,psw As Object
使用CreateObject(“MSXML2.serverXMLHTTP”)。打开“GET”,“http: //XXXX/login.jsp“,False
html.body.innerHTML = .responseText 结束 设置usr = html.getElementsByTagName(”表单“)(0).getElementsByTagName(”input“)(0)设置psw = html.getElementsByTagName(”Form“)(0).getElementsByTagName(”input“)(1)设置btn = html.getElementsByTagName(“Form”)(0).getElementsByTagName(“input”)(2)
usr.Value =“用户名” psw.Value =“密码” btn.click
Set html = Nothing:Set btn = Nothing:Set usr = Nothing:Set psw = Nothing
本文地址: &
扫一扫关注官方微信查看: 5863|回复: 4
怎么通过点击控件“命令按钮”来弹出一个“用户窗体”啊
阅读权限10
在线时间 小时
Private Sub CommandButton1_Click()
UserForm1.Visible = True
我觉得代码也不会这么简单,这不,弹出个
(14.46 KB, 下载次数: 15)
14:46 上传
阅读权限30
在线时间 小时
Private Sub CommandButton1_Click()
UserForm1.show
试一下这个
阅读权限10
在线时间 小时
可以了,刚开始学习vba,第一次在论坛上发帖求助,非常感谢!!{:soso_e179:}
阅读权限10
在线时间 小时
Private Sub CommandButton1_Click()
UserForm1.show
如果窗体名是中文呢?
阅读权限20
在线时间 小时
UserForm1改为中文窗体名就好!
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师查看: 2181|回复: 13
VBA 点击网页按钮
阅读权限10
在线时间 小时
& & & & & & & &
本帖最后由 --勇者无惧 于
00:35 编辑
我想在这个网站(http://gs.amac.org.cn/amac-infodisc/res/pof/manager/index.html)上得到最近三个月得的数据。在网页上需要首先要对数据进行一下筛选,就是点击“最近三月”,然后再点“查询”
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
现在可以点击到“最近三个月”,然后再点击“查询”,查看网页代码如下。请各位帮忙看看,再VBA中如何实现这个点击。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg
Sub data()
&&Dimi As Integer
Setie = CreateObject(&InternetExplorer.Application&)
& &ie.Visible = True
& &With ie& &
& &.navigate&http://gs.amac.org.cn/amac-infodisc/res/pof/manager/index.html&
& &While ie.readyState && 4 Or ie.Busy = True
& && & DoEvents
'该部分为了查找文字所在的分块位置
'.......................................................
Setdmt = .Document
& && & For i = 0 To dmt.all.Length - 1
& && && &&&Set htMent = dmt.all(i)
& && && &&&With ActiveSheet
& && && && && & .Cells(i + 2, &A&) =htMent.tagName
& && && && && & .Cells(i + 2, &B&) =TypeName(htMent)
& && && && && & .Cells(i + 2, &C&) =htMent.ID
& && && && && & '.Cells(i + 2, &D&) =htMent.Name
& && && && && & '.Cells(i + 2, &E&) =htMent.Value
&&& && && && &&&'.Cells(i + 2, &F&) =htMent.Text
& && && && && & .Cells(i + 2, &G&) =htMent.innerText
& && && &&&End With
& && & Next i
'......................................................
'该部分点击最近三个月
'...............................
& &Debug.Print htMent.innerText
&&Set htMent = dmt.all(152)
&&dmt.all(152).Click
&&Debug.Print htMent.innerText '调试输出
'................................
& &'ie.Quit
& &'Set ie = Nothing
(58.99 KB, 下载次数: 0)
00:34 上传
(58.99 KB, 下载次数: 0)
00:34 上传
阅读权限100
在线时间 小时
(206.41 KB, 下载次数: 91)
14:25 上传
点击文件名下载附件
阅读权限10
在线时间 小时
感谢你的帮助,这种写法写法很有效率。
你的方法我要研究一下,之前没有这样用过。不知道你是怎样知道可以用这样的方法来做的呢?之前我的想法可能还类似与用鼠标点击的方法,看来在这里效果不是太好。
阅读权限20
在线时间 小时
& & & & & & & &
Sub test()
Dim ie, dmt
& & Set ie = CreateObject(&InternetExplorer.Application&) '创建一个IE对象
& & With ie
& && &&&.Visible = True '显示它
& && &&&.navigate &http://gs.amac.org.cn/amac-infodisc/res/pof/manager/index.html& '加载某个页面
& && &&&Do Until .ReadyState = 4 And .busy = False '等待页面加载完毕
& && && && &DoEvents
& && &&&Loop
& && &&&Set dmt = .document
'& && &&&Stop
& && &&&
& && &&&dmt.getElementsByTagName(&a&)(8).Click
& && &&&
& && &&&
& && &&&dmt.getElementsByTagName(&input&)(10).Click
& & End With
End Sub复制代码
阅读权限20
在线时间 小时
dmt.getElementsByTagName(&a&)(11).Click复制代码
登记时间近三个月 应该是这个
阅读权限30
在线时间 小时
请测试一下代码。
10:46 上传
点击文件名下载附件
28.61 KB, 下载次数: 40
阅读权限10
在线时间 小时
请测试一下代码。
感谢回答,你的代码很好用。
不知道你是怎样获取API的入口地址(http://gs.amac.org.cn/amac-infodisc/api/pof/manager?rand=& & t & &&page=& & p & &&size=20)的呢?可以告诉我一下吧。这个API入口和“一个东阳侬”的格式基本相同,应该是有方法可以查找到的。
另外同样是这个网站的有没有办法可以获取“http://gs.amac.org.cn/amac-infodisc/res/pof/manager/194.html”这里的数据呢,不知道是否可以再利用这个API接口。
阅读权限10
在线时间 小时
登记时间近三个月 应该是这个
谢谢,代码是对的
阅读权限30
在线时间 小时
本帖最后由 Kaohsing 于
17:55 编辑
感谢回答,你的代码很好用。
不知道你是怎样获取API的入口地址( ...
用fiddle抓包,可以看到具体的数据地址。。这一页数据较多你要哪一部分数据。
阅读权限10
在线时间 小时
好的,在论坛也找到了fiddle的教程,谢谢提供这个信息。表格的信息基本都需要,将数据包得到后细节的提取我懂一些,就是数据请求的格式及服务器地址那个不太会弄。
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师VBA 中为自动创建的button添加事件,不用onaction_百度知道
VBA 中为自动创建的button添加事件,不用onaction
就像图中这样,我的button是在这一张表中自动创建的,前面三个“微信微博和qq”都各有一张以这个单元格值命名的表,也就是还有微信、微博、qq三张表。我想实现的功能是:点击后面的按钮,获取当前按钮的位置,然后跳到相应的表。不知道如何实现,怎样为butto...
我有更好的答案
baidu.baidu://b使用hyperlink函数最简单,设置方便,界面美观
采纳率:67%
为您推荐:
其他类似问题
vba的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 vba添加按钮点击事件 的文章

 

随机推荐