Моя компания нуждается в перезагрузке имен пользователей и паролей для более 1000 человек, и вместо того, чтобы делать это по-отдельности, я бы хотел, чтобы VBA автоматизировал ее для меня. Я подключил его к IE-окну, но getElementsByTagName («вход») возвращает только последний тег ввода. Ниже мой код:Excel VBA getElementsByTagName() возвращает только последний вход
Dim shellWins As ShellWindows
Dim IE As InternetExplorer
Dim HTMLdoc As HTMLDocument
Dim objElement As Object
Dim objCollection As IHTMLElementCollection
Dim name As String
Dim val As String, val2 As String
Dim a
Set shellWins = New ShellWindows
If shellWins.Count > 0 Then
' Get IE
Set IE = shellWins.Item(0)
Else
' Create IE
Set IE = New InternetExplorer
IE.Visible = True
End If
Set objCollection = IE.Document.getElementsByTagName("input")
For i = 0 To objCollection.Length
name = objCollection(, i).name
If Left(name, 6) = username Then
val = objCollection(i).Value
a = Split(val, "@")
If Left(a(1), 1) <> "s" Then
val2 = a(0) & sa & a(1)
Else
val2 = val
End If
objCollection(i).Value = val2
ElseIf Left(name, 6) = pswd Then
objCollection(i).Value = nPswd
End If
Next
Set shellWins = Nothing
Set IE = Nothing
Входящие теги, которые я хочу, находятся в табличных тегах, может ли это быть причиной этого? Если да, как бы я ссылался на теги внутри таблицы?
Заранее спасибо.
Вы опустили какой-то код? –