VBA For Each Loop仅执行一次然后停止

时间:2014-07-31 15:53:30

标签: excel vba excel-vba

我制作了一个VBA宏,其目标是使用表中的一组项目对数据库进行多次查找和替换。我在每个循环中使用a来尝试迭代第一列中的每个单元格,但它只对第一列中的项执行查找和替换。

该表有两列,“替换什么”和“替换为”,所以我使用find和replace来查找第一列中的项目,并使用offset函数将其替换为下一列中的相应项目。

如何使这个循环起作用?

由于

这是我的代码:

Sub FindReplace()
Dim RepList As Range, RepItem As Range



    Set RepList = Worksheets("Supply Replacement").Range("Table4[Replace What]")

    For Each RepItem In RepList.Cells

        Cells.replace What:=RepList.Value, Replacement:=RepList.Offset(0, 1).Value

    Next RepItem

End Sub

1 个答案:

答案 0 :(得分:0)

在你的循环中,你应该使用RepItem,而不是RepList

Sub FindReplace()
Dim RepList As Range, RepItem As Range



    Set RepList = Worksheets("Supply Replacement").Range("Table4[Replace What]")

    For Each RepItem In RepList.Cells

        Cells.replace What:=RepItem.Value, Replacement:=RepItem.Offset(0, 1).Value

    Next RepItem
End Sub