【问题标题】:Looping through Excel cells [duplicate]循环遍历Excel单元格[重复]
【发布时间】:2019-10-15 11:50:08
【问题描述】:

我有一个 Excel 电子表格 - 第一列包含 ID 号,第二列包含应分配特定 ID 号的名称。

我的宏的目的是从 A2 复制 ID 号,将其输入到 Web 应用程序中,从 Web 应用程序中刮下与 ID 号相关联的名称,然后将该名称输入到第三列。

我已经用 A2 中的第一个值成功地完成了这一点。

我的问题是,我一生都无法弄清楚如何使用循环,以便宏循环遍历 A 列中的每个单元格,直到它到达一个空白单元格。我对 VBA 很陌生,所以请原谅我的无知。 下面的代码是我必须循环的宏。

  IE.document.getElementById("caseId").Value = ThisWorkbook.Sheets("StarsID").Range("A2").Value

'Tells macro to click on 'Search Cases' Button
       IE.document.getElementById("_eventId_search").Click

'Tells macro to wait for browser to load completely
       Do While IE.Busy = True Or IE.readyState <> 4: DoEvents: Loop

'Tells macro that first search result will be entered into row 2
       y = 2
        currentQueue = IE.document.getElementById("results").Children(1).Children(0).Children(3).Children(0).innerText
        Sheets("StarsID").Cells(y, 3).Value = currentQueue
         ActiveCell.Offset(1, 0).Select

【问题讨论】:

  • 只是为了验证,您想循环 A2、A3 .....直到您到达 A 列中的一个空单元格?另外,非空行之间是否有空白行?
  • AAA- 是的,我想循环遍历 A2、A3 ......直到它到达一个空白行并且我希望它停止。非空行之间没有空行。

标签: excel vba web-scraping


【解决方案1】:

试试

y = 2
    Do While ThisWorkbook.Sheets("StarsID").Range("A" & y).Value <> ""
    IE.document.getElementById("caseId").Value = ThisWorkbook.Sheets("StarsID").Range("A" & y).Value
    IE.document.getElementById("_eventId_search").Click
    Do While IE.Busy = True Or IE.readyState <> 4: DoEvents: Loop
    currentQueue = IE.document.getElementById("results").Children(1).Children(0).Children(3).Children(0).innerText
    ThisWorkbook.Sheets("StarsID").Cells(y, 3).Value = currentQueue
    ActiveCell.Offset(1, 0).Select
    y = y + 1
    Loop

可能会增加一些等待时间,具体取决于网站的响应。

【讨论】:

  • 嗨!所以我尝试了上面的代码,不幸的是它没有在这里获取单元格 A2 中的值: Do While ThisWorkbook.Sheets("StarsID").Range("A" & y).Value ""
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多