应用背景:假如现在需要在网页中进行计算,需要填写很多参数(很多参数其实几乎是固定的,而且很多参数可以和数据库联动起来)。
如果每次寻找参数往web里面填写地话,就会很浪费时间。
解决方案:可以通过excel的表单,打开网页,批量记入,实现效率化。
1.首先在一个sheet里面记入B列的数据,C列是网页元素的name/Id。
查找方法可以参考以下链接。
Excel的VBA进行百度搜索_Kazefuku的博客-CSDN博客_vba 搜索框
2.如果有很多项目需要记入,一个一个得找name就比较麻烦了,可以通过批量提取来进行。
方法可以参考我的别的文章:
VBA批量获取网页—ID or Name_Kazefuku的博客-CSDN博客
本次只做例子,假如我只有4个name,name已经获取并记入C列。
代码如下:
Sub excel_Toweb_input()
Dim str1() As String '声明动态数组
Dim str2() As String '声明动态数组
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
n = Application.CountA(Range("C:C")) '计算行数
ReDim str1(1 To n) '给数组分配区间
ReDim str2(1 To n)
For i = 1 To n '将B列给str1数组
str1(i) = Range("B" & i)
str2(i) = Range("C" & i) '将C列给str2数组
Next i
objIE.Visible = True '打开objie,赋予网站
objIE.navigate "http://xxxxxxxxxxxxxxxx"
Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE
DoEvents
Loop
Dim htmlDoc As HTMLDocument
Set htmlDoc = objIE.document
With htmlDoc
For i = 1 To n '将数值str1的值赋予给数组str2,填入ID中
.getElementById(str2(i)).Value = str1(i)
Next
.getElementById("btn1").Click '如果有要点击的按钮,就用click点击按钮实现
End With
End Sub