Вы можете использовать библиотеку VBA «Controls Интернет Microsoft» и «Библиотека объектов Microsoft HTML» и полностью автоматизировать взаимодействие страницы веб ...
Ниже приведен макрос, чтобы сделать это ... Для того, чтобы ввести код макроса , вы можете использовать Alt + F11 для входа в среду Microsoft Visual Basic для приложений.
- Добавить библиотеку литературы (в меню Tools
>References
)
- добавить модуль кода (под Insert
>Module
)
- Вставьте код ниже ... изменить их URL-адрес
Код будет открыть IE затем перейдите на веб-страницу и дождитесь, пока вы нажмете OK (после того, как вы сделаете все, что вам нужно. Возможно, войдите в систему, перемещаясь где-нибудь, введя количество строк, ...). Затем он будет проходить через все столбцы, которые вы использовали в своей электронной таблице (используя Find
для заполнения numCols
) и отбросить значения ячеек в элементы 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
Это отправная точка, но я понятия не имею, что вы сказали: O я стараюсь смотреть на него, но я никогда не играл с первенствует – user237025
@ user237025 - ахха! Это будет хорошее введение для новичков :-) Является ли сайт общедоступным, и вы можете поделиться своими примерами данными ... Я могу дать вам более полный пример! – Captain
Нет, это внутренний веб-сайт, но я могу дать вам больше примера http://pastebin.com/AaWCZUJe – user237025