我的 For Each Loop 如何循环到下一行?

问题描述 投票:0回答:1

For Each 循环不是循环到下一行并应用我的代码,而是从同一行的下一个单元格开始。

我是VBA初学者,我所有的代码都来自互联网。我正在使用一个表单,我想用 Excel 文件中的数据自动填充该表单。

所以,数据是连续的,比如说 B3:D3,我的代码会挑选出每个单元格的值并将其复制到表单中的文本框。但它不会转到下一行或 B4:D4,而是循环并从 C3:E3 获取数据。

这是我的代码的一部分:

For Each Cell In Range("B3:D32").Cells
If Cell.Value = "" Then Exit For
    
    Set obj = New Selenium.ChromeDriver
    obj.Start

    obj.Get "insert website here"
    obj.FindElementByName("Enter Title").SendKeys (Cell.Offset(0, 0).Value)")
    obj.FindElementByXPath("//button[@aria-describedby='cdk-describedby-message-6']").click
    obj.FindElementByXPath("//img[@class='ng-star-inserted']").click
    
    obj.FindElementByXPath("//input[@placeholder='Search for Employee/Group']").SendKeys (Cell.Offset(0, 3).Value)

当我浏览列中的数据时,它起作用了,而且我已经浏览了所有问题和教程,但我似乎找不到进入下一行的答案。感谢您的帮助!

excel vba selenium-webdriver foreach range
1个回答
0
投票

要逐行移动,您需要遍历垂直向量:

For Each Cell In Range("B3:B32").Cells

然后你可以使用Offset方法到达同一行的其他单元格:

Cell.Offset(0, 1)

此外,您还可以遍历行:

For i = 3 to 32
  x = Rows(i).Cells(column)
Next

其中column是所需的列号,也可以用字母表示(例如“B”)。

© www.soinside.com 2019 - 2024. All rights reserved.