我有一套带有一组价格的工作簿,我需要随机分配保证金,但它们都必须低于列表的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
答案 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次。您可以调整阈值