如何用循环增加一个Range对象

在这段代码中,我试图增加两个Range对象的使用.OffSet(1,0).Activate。

Function Foundry_check_func(target_cell As Range, result_cell As Range) For x = 1 To 20 If result_cell <= 5 Then target_cell = "Value 1" ElseIf result_cell >= 10 Then target_cell = "Value 2" Else: target_cell = "Value 3" End If With target_cell .Interior.Color = RGB(0, 255, 0) End With target_cell.Offset(3, 0).Activate result_cell.Offset(4, 0).Activate Debug.Print ("Value: " & result_cell & " Loop: " & x) Next x ' Don't forget to format target cell at end of loop End Function Sub Foundry_check() Main = Foundry_check_func(Range("J22"), Range("K22")) End Sub 

但是,我可以看到使用Debug.Print,每个循环后,正在读取的单元格不会更改。 这是输出:

 Value: 1 Loop: 1 Value: 1 Loop: 2 Value: 1 Loop: 3 Value: 1 Loop: 4 Value: 1 Loop: 5 etc. 

我使用ActiveCell而不是Range来做类似的macros工作。 但在这个程序中,我需要closures两组单元格。 一个读取数据(result_cell),另一个读取数据(target_cell)。 我不知道如何使用ActiveCell来抵消在同一个循环中的两个不同的单元格。

任何帮助,将不胜感激。

这是我看到的问题…

你的价值没有改变,因为你的target_cell没有改变…你应该添加

  target_cell.address 

到你的debugging脚本,你会看到它不会改变…要更改目标单元格,你需要设置target_cell,你不能只激活另一个…所以你会这样做:

  set target_cell = target_cell.Offset(3, 0) set result_cell = result_cell.Offset(4, 0)