【发布时间】:2017-11-29 08:44:55
【问题描述】:
我想在 for 循环中获取范围的最大值和最小值(对于每一行)。
我在互联网上找到的解决方案要么是针对静态范围,要么是给我同样的错误。目前,我使用以下内容在xMax 行提供run-time error '1004':
Dim i As Long
Dim xMax As Double
Dim ws1 As Worksheet
Set ws1 = Worksheets("Sheet1")
For i = 2 To 15
xMax = Application.WorksheetFunction.Max(ws1.range(Cells(i, 6), Cells(i, 15)))
Next
但以下静态范围有效:
xMax = Application.WorksheetFunction.Max(ws1.range(Cells(2, 6), Cells(2, 15)))
我尝试将其简化为 2 个单元格:
静态范围没有问题:
xMax = Application.WorksheetFunction.Max(Cells(2, 6).Value, Cells(2, 7).Value)
但动态范围弹出同样的错误:
For i = 2 To 15
xMax = Application.WorksheetFunction.Max(Cells(i, 6).Value, Cells(i, 7).Value)
Next
如何在循环中实现变量范围的最小值/最大值?
【问题讨论】:
-
您没有正确限定
Cells调用:xMax = Application.WorksheetFunction.Max(ws1.range(ws1.Cells(i, 6), ws1.Cells(i, 15))) -
你不用
Next i吗?并将其设置为 int -
@David G:不,
i是可选的 - 但使用它是一种很好的做法。