我有一张Excel工作表,其中包含60行和7列的整数值。第一行是评论,前三列也是评论(我必须省略这些)。
所以,我想迭代列范围3:7(D:H)中的行范围2:60,以找到连续的细胞的最大值。回答第I栏中的细胞。
我所拥有的(简化视图):
Test1 Test2 Test3 Test4 One 1 2 3 4 Two 5 6 7 8 Three 1 2 5 4 Four 1 7 3 4
我想拥有什么:
Test1 Test2 Test3 Test4 Max One 1 2 3 4 4 Two 5 6 7 8 8 Three 1 2 5 4 5 Four 1 7 3 4 7
如果我手动创建一个宏,我会收到:
range("D2:I2").Select
range("I2").Activate
ActiveCell.FormulaR1C1 = "=MAX(RC[-5]:RC[-1])"
range("D3:I3").Select
range("I3").Activate
ActiveCell.FormulaR1C1 = "=MAX(RC[-5]:RC[-1])"
range("D4:I4").Select
range("I4").Activate
ActiveCell.FormulaR1C1 = "=MAX(RC[-5]:RC[-1])"
很酷......但我想通过一个循环迭代它。
我尝试了这个,但不起作用:
Sub max()
For num = 2 To 4
range("D&num:I&num").Select
range("I & num").Activate
ActiveCell.FormulaR1C1 = "=MAX(RC[-5]:RC[-1])"
Next num
End Sub
有什么想法吗?
答案 0 :(得分:1)
Simoco已经提到了代码中的错误。我还要补充一点,你应该避免使用.Activate
。您可能希望看到THIS
最简单的方法是使用不使用循环的方法
Sub Sample()
With ThisWorkbook.Sheets("YourSheetName")
.Range("I2:I60").Formula = "=Max(D2:H2)"
End With
End Sub