Excel Noob复制Excel单元格到HTML文本框

我必须每周将500-600个单元格复制到一个覆盖在文本框中的网站上。 我知道如何编写代码,所以我知道如何阅读源代码,但Excel现在已经超出了我的视野。 我如何复制一个Excel单元格放置在一个特定的文本字段(我已经打破了下面)。 现在我需要帮助重复它,直到它到达一个空白单元格。

A1 = id='firstname0' A2 = id='middleinitial0' A3 = id='lastname0' A6 = id='ntlogin0' B1 = id='firstname1' B2 = id='middleinitial1' B3 = id='lastname1' B6 = id='ntlogin1' C1 = id='firstname2' C2 = id='middleinitial2' C3 = id='lastname2' C6 = id='ntlogin2' 

这里是一些网站的来源:

 <td> <input type='text' name='ntlogin[]' id='ntlogin0' /> </td> <td> <input type='text' name='firstname[]' id='firstname0' /> </td> <td class='center'> <input type='text' name='middleinitial[]' id='middleinitial0' size='1' /> </td> <td> <input type='text' name='lastname[]' id='lastname0' /> </td> <td> <input type='text' name='hiredate[]' id='hiredate0' /> </td> 

该网站问我要创build多less行。 我可以用1个button来控制雇佣date部分。 我无法控制网站,所以我无法对其进行任何更改。

您可以使用VBA库“Microsoft Internet Controls”和“Microsoft HTML Object Library”,并完全自动化网页交互…

下面是一个macros来做到这一点…要inputmacros代码,您可以使用Alt + F11进入Microsoft Visual Basic for Applications环境。
– 添加库参考(在Tools > References菜单下)
– 添加一个代码模块(在Insert > Module
– 粘贴下面的代码…修改他们的url

代码将打开IE浏览器,然后转到网页,等待你点击确定(完成任何你需要的..也许login,导航某处,input行数,…)。 然后,它将遍历在电子表格中使用的所有列(使用“ Find填充numCols ),并将单元格值放入具有相关ID的HTML元素中。 它不会为你添加员工 ,以防万一出了问题,但图书馆确实能给你提供.Click()的东西。

我已经使用了这一些自动化黑客,它似乎相当可靠…困难的部分可以等待页面加载/更新 – 但你不应该有这个问题。

 'References needed: "Microsoft Internet Controls" and "Microsoft HTML Object Library" ' (add under menu Tools > References) Sub populate() Dim ws As Worksheet Set ws = Application.ActiveSheet Dim appIE As InternetExplorer Set appIE = New InternetExplorer appIE.Visible = True appIE.Navigate "http://localhost:8080/your_form" If vbCancel = MsgBox("Make sure the page has loaded, enter the number of ids etc. etc. Then click OK", vbOKCancel) Then Set appIE = Nothing Exit Sub End If Dim counter As Integer, index As Integer, numCols As Integer numCols = ws.Cells.Find(What:="*", After:=[A1], LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Column For counter = 1 To numCols 'A1 = id='firstname0' 'A2 = id='middleinitial0' 'A3 = id='lastname0' 'A6 = id='ntlogin0' index = counter - 1 appIE.document.getElementById("firstname" & index).Value = ws.Cells(1, counter) appIE.document.getElementById("middleinitial" & index).Value = ws.Cells(2, counter) appIE.document.getElementById("lastname" & index).Value = ws.Cells(3, counter) appIE.document.getElementById("ntlogin" & index).Value = ws.Cells(6, counter) Next counter Set appIE = Nothing Set ws = Nothing MsgBox "All done - hit Submit if all OK!" End Sub 

价值在行中的版本

 'References needed: "Microsoft Internet Controls" and "Microsoft HTML Object Library" ' (add under menu Tools > References) Sub populate() Dim ws As Worksheet Set ws = Application.ActiveSheet Dim appIE As InternetExplorer Set appIE = New InternetExplorer appIE.Visible = True appIE.Navigate "http://localhost:8080/your_form" If vbCancel = MsgBox("Make sure the page has loaded, enter the number of ids etc. etc. Then click OK", vbOKCancel) Then Set appIE = Nothing Exit Sub End If Dim counter As Integer, index As Integer, numRows As Integer numRows = ws.Cells.Find(What:="*", After:=[A1], LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row For counter = 1 To numRows 'A1 = id='firstname0' 'B1 = id='middleinitial0' 'C1 = id='lastname0' 'D1 = id='ntlogin0' index = counter - 1 appIE.document.getElementById("firstname" & index).Value = ws.Cells(counter,1) appIE.document.getElementById("middleinitial" & index).Value = ws.Cells(counter,2) appIE.document.getElementById("lastname" & index).Value = ws.Cells(counter,3) appIE.document.getElementById("ntlogin" & index).Value = ws.Cells(counter,4) Next counter Set appIE = Nothing Set ws = Nothing MsgBox "All done - hit Submit if all OK!" End Sub