使用VBA查找循环的最大值

时间:2017-07-13 06:10:39

标签: excel vba excel-vba

我试图找到一个循环的最大值。首先,我有两个随机数组,我想找到这两个数组的相关系数。然后,我想计算它多次“I3”单元格。之后,我想编写一个代码,从该计算中找出最大相关系数。我写了下面的代码,但它没有用。

Sub Macro1()

Dim i As Long
For i = 1 To Range("I3")
    Calculate
Next

DMax = Application.WorksheetFunction.Max("A2")
Range("I4").Value = DMax

End Sub

感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

你的Max-Function需要一个适当的参数。只输入“A2”在VBA中不起作用。尝试:

DMax = Application.WorksheetFunction.Max(Range("A2"))

这将为您提供数组 A2 的最大值。但请记住,由单个单元格组成的范围的最大值始终是单元格值。

如果要计算所有迭代的最大值,则应在每次迭代中使用max-function(在for循环内)并存储它的值。在每次后续迭代中,如果新的最大值大于旧的最大值,则应覆盖max-Value。就像这样:

Sub Macro1()

Dim i As Long
DMax = 0
For i = 1 To Range("I3")
    Calculate
    DMax2 = Application.WorksheetFunction.Max(Range(...))
    If DMax2 > DMax Then DMax = DMax2
Next i

Range("I4").Value = DMax

这将为您提供所有迭代的范围(...)的最大值。

答案 1 :(得分:0)

我几乎不了解您的代码,但解决方案将是禁止循环。假设您有两组数字:A2Cells(2, 1))到I2Cells(2, 7))和A3Cells(3, 1))到{{1 (I3)。您想要计算部分相关性并找出它的最大值。

Cells(3, 7)

答案 2 :(得分:0)

For i = 1 To Range("I3").value 'to calculate from 1 to the value in that cell

我会为你的问题推荐什么。

For i = 1 To 10 ' loop 10 times
    For j = 1 To i ' here it will allow you to check your stuff multiple times before moving on to the next value
    arr1(i) = arr2(j) ' see if your array match
    Next j

Next i