首页 > 解决方案 > VBA使用Excel列表填充网页中的一个单元格

问题描述

我做了很多测试并尝试了很多建议,但似乎没有任何工作。我认为这部分是由于该过程的 Web 部分的设置方式。使用 VBA 的这一部分,我尝试通过声明输入名称来命名输入元素,但它不起作用。该网站是一个公司网站,它的设置方式很奇怪,因此我很挣扎。

我需要的代码使用具有 2 列的 excel 文档 - Col A 具有指向基于 Web 的系统中每个人的个人资料的超链接列表,Col B 具有针对每个超链接的人员代码。

因此,我需要一个代码: 1. 单击 Excel 工作表列 A 中的第一个超链接并在 IE 中打开新页面 2. 等待页面加载 3. 在 Excel 工作表列 B 中,复制列表 3 中的第一个代码。打开 IE 页面,Tab 一定次数,直到到达正确的字段(因为选择输入字段不起作用) 4. 将复制的代码粘贴到字段 5. Sendkeys Enter 将数据保存到字段 6. 等待页面加载 7. 关闭 IE 页面 8. 循环单击列表中的下一个超链接并重复过程直到列表结束

如果有人可以请帮助,我将不胜感激!我是 VBA 新手,所以任何建议,编码都会很棒。

提前谢谢了!麦克风

这是我到目前为止尝试过的(不起作用)

Sub submitFeedback3()

Application.ScreenUpdating = False

Set links = Sheets("Links List")
Set linkList = links.Range("A1", links.Range("A" & Rows.Count).End(xlUp))

Set ID = Sheets("Links List")
Set IDList = ID.Range("B1", ID.Range("B" & Rows.Count).End(xlUp))
Application.DisplayAlerts = False
StartTime = Now
    For Each URL In linkList    'open each link
        Shell (browserPath & " " & URL.Value)
    For Each Cel In IDList
        SendKeys "^c"      '= copy
        Set IE = Nothing

Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True


    SendKeys "^v"
    SendKeys ("{ENTER}")
    Next Cel
    Next URL


Application.DisplayAlerts = True
End Sub

更新代码:

Option Explicit
Const browserPath As String = "C:\Program Files\Internet 
Explorer\iExplore.exe"

Dim IE As Object
Dim LatestDate, StartTime
Dim links As Worksheet, linkList As Range, ID As Worksheet, IDList As Range, 
URL 
As Range, Cel As Range

Sub submitFeedback3()

Application.ScreenUpdating = False

Set links = Sheets("Links List")
Set linkList = links.Range("A1", links.Range("A" & Rows.Count).End(xlUp))

Set ID = Sheets("Links List")
Set IDList = ID.Range("B1", ID.Range("B" & Rows.Count).End(xlUp))



 Application.DisplayAlerts = False
  StartTime = Now
    For Each URL In linkList    'open each link

        Shell (browserPath & " " & URL.Value)
    While IE.Busy
        DoEvents
     Wend
    For Each Cel In IDList

        SendKeys "^c"      '= copy
    With IE

    .getElementById ("employee.dealerPortalUserId")


    SendKeys "^v"
    SendKeys ("{ENTER}")
    End With


    Next Cel
    Next URL


Application.DisplayAlerts = True
End Sub

标签: excelvba

解决方案


推荐阅读