在给定 Range 对象的 VBA 中循环遍历两个相同长度的单元格范围

Kus*_*usi 5 excel vba loops

假设我有这样的代码:

For Each cell1 In range_vals
    For Each cell2 In range_pred

      If (cell1 = cell2) Then
            //Do something
      End If

    Next cell1
Next cell2
Run Code Online (Sandbox Code Playgroud)

但我想做的是同时迭代两个单元格范围,并且这个范围的长度,如下所示:

For Each cell1, cell2 In range_vals, range_pred   

      If (cell1 = cell2) Then
            //Do something
      End If

Next cell1, cell2
Run Code Online (Sandbox Code Playgroud)

我知道这可以在 python 中完成,但是我在 VBA 中很难做到这一点。

Bri*_*ord 5

不要使用,而是尝试像这样For Each使用:For

Dim range_vals As Range
Dim range_pred As Range
Dim i As Integer

With Worksheets("Sheet1")
   Set range_vals = .Range("A1:A10")
   Set range_pred = .Range("B1:B10")

   For i = 1 To range_vals.Cells.Count
      If range_vals.Cells(i) = range_pred.Cells(i) Then
         MsgBox "do something"
      End If
   Next
End With
Run Code Online (Sandbox Code Playgroud)

这将“并行”循环,比较 A1 与 B1、A2 与 B2,依此类推。