【问题标题】:How to get in VBA the max value of the cells in the row range 2:60 and column range D:H如何在 VBA 中获取行范围 2:60 和列范围 D:H 中单元格的最大值
【发布时间】:2014-01-24 23:09:11
【问题描述】:

我有一个包含 60 行和 7 列整数值的 Excel 工作表。第一行是评论员,前三列也是评论员(我必须省略这些)。

所以,我想遍历列范围 3:7 (D:H) 中的行范围 2:60 以找到一行中单元格的最大值。答案转到第一列中的单元格。

我有什么(简化视图):

测试1 测试2 测试3 测试4 一个 1 2 3 4 两个 5 6 7 8 三 1 2 5 4 四个 1 7 3 4

我想要什么:

测试1 测试2 测试3 测试4 最大值 一个 1 2 3 4 4 两个 5 6 7 8 8 三 1 2 5 4 5 四个 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

有什么想法吗?

【问题讨论】:

  • 尝试将range("D&num:I&num").Select 更改为range("D" & num ":I" & num).Selectrange("I & num").Activate 更改为range("I" & num).Activate

标签: excel row range max vba


【解决方案1】:

Simoco 已经提到您的代码中的错误是什么。我还要补充一点,您应该避免使用.Activate。你可能想看看THIS

最简单的方法是使用这个不使用循环的方法

Sub Sample()
    With ThisWorkbook.Sheets("YourSheetName")
        .Range("I2:I60").Formula = "=Max(D2:H2)"
    End With
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多