Vba 如何使用循环增加范围对象
在这段代码中,我试图使用.OffSet(1,0).Activate增加两个范围对象的值Vba 如何使用循环增加范围对象,vba,excel,Vba,Excel,在这段代码中,我试图使用.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
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
我使用ActiveCell而不是Range制作了一个类似的宏。但在这个程序中,我需要偏移两组单元格。一个用于读取数据(结果单元格),另一个用于基于该数据写入值(目标单元格)。我不知道如何使用ActiveCell在同一个循环中偏移两个不同的单元格
任何帮助都将不胜感激 我看到的问题是 你的价值没有改变,因为你的目标细胞没有改变。。。你应该加上
target_cell.address
到您的调试脚本,您将看到它没有改变。。。
要更改目标单元格,您需要设置目标单元格,但不能激活其他单元格。。。所以你会这样做:
set target_cell = target_cell.Offset(3, 0)
set result_cell = result_cell.Offset(4, 0)
这是我看到的问题 你的价值没有改变,因为你的目标细胞没有改变。。。你应该加上
target_cell.address
到您的调试脚本,您将看到它没有改变。。。
要更改目标单元格,您需要设置目标单元格,但不能激活其他单元格。。。所以你会这样做:
set target_cell = target_cell.Offset(3, 0)
set result_cell = result_cell.Offset(4, 0)
您不需要
偏移量
或激活
。直接使用单元格
集合即可。这到底是怎么回事?循环运行的时间越长,3和4的偏移量将增加2个范围之间的差距。请尝试:设置targetcell=targetcell.offset(3,0)
和设置resultcell=resultcell.offset(4,0)
,而不是尝试激活单元格。您当前的代码确实激活了单元格,但仅此而已。目标和结果单元格不更改要成功地for
循环,您需要使用迭代器(x
)来实际更新某些内容,或者在循环中增量更改和更新某些内容。这两个都不存在。@NickSlash就是他干的。非常感谢,您不需要偏移量
或激活
。直接使用单元格
集合即可。这到底是怎么回事?循环运行的时间越长,3和4的偏移量将增加2个范围之间的差距。请尝试:设置targetcell=targetcell.offset(3,0)
和设置resultcell=resultcell.offset(4,0)
,而不是尝试激活单元格。您当前的代码确实激活了单元格,但仅此而已。目标和结果单元格不更改要成功地for
循环,您需要使用迭代器(x
)来实际更新某些内容,或者在循环中增量更改和更新某些内容。这两个都不存在。@NickSlash就是他干的。非常感谢