Excel VBA代码检查列中每个单元格的值然后重新计算

时间:2018-02-22 15:20:57

标签: excel-vba vba excel

我有一套带有一组价格的工作簿,我需要随机分配保证金,但它们都必须低于列表的0.88%......

尝试编写将经历的代码并检查列中的每个单元格是否有任何值> .88然后Excel将执行'计算',它将再次检查以查看是否有任何单元格> .88直到柱中的所有细胞都低于.88

我已经尝试过这个代码,它会遍历每个单元格并进行计算,但不会检查单元格是否为> .88

`

 Sheets("Line Breakout Revised").Select


 For i = 1 To Range("U" & Rows.Count).End(xlUp).Row

    If Cells(i, 1).Value > 0.88 Then Calculate

Next i





End Sub

1 个答案:

答案 0 :(得分:0)

您可以使用MAX():

来使用do循环
Dim i As Long
i = 0
Dim Threshold As Long
Threshold = 1000
With Worksheets("Line Breakout Revised")
    Do
        .Calculate
        i = i + 1
    Loop Until Application.WorksheetFunction.Max(.Range(.Cells(1, "U"), .Cells(.Rows.Count, "U").End(xlUp))) <= 0.88 _
        Or i >= Threshold
End With
If i >= Threshold Then MsgBox "Threshold met before accomplishing goal"

我放了一个计数器,以确保不会发生无限循环。它将循环,直到所有数字都低于或等于.88 循环已经消失了1000次。您可以调整阈值