在VBA中迭代,直到达到目标值

时间:2016-05-23 06:40:10

标签: excel vba excel-vba

在以下链接中有一个Excel文件:

https://www.dropbox.com/s/undic11wsq88dej/VBA%20Iteration.xlsm?dl=0

在此Excel文件中,您会看到我想要包含迭代的计算。单元格B5中的值应随机变化,直到单元格D22中的值与单元格B13 / D23中的值完全相同。

到目前为止,我已编写以下代码来完成此迭代:

Sub test()
Do Until Sheets("Tabelle1").Range("D22") = Sheets("Tabelle1").Range("D23")
Sheets("Tabelle1").Range("B5") = Int((500 - (-500) + 1) * Rnd + (-500)) / 100
Loop
End Sub

然而,问题是代码在单元格B5中插入随机值 但是,看看这些价值观是否让他更接近这一点并不够聪明 单元格B13 / D23中的值。相反,它会循环遍历它。

你们有任何想法我怎么能让这个迭代足够聪明 所以它注意到它是否接近Cell D23中的值。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用求解器添加,此工具使用算法选择“随机值”,以便它可以快速达到解决方案

You can see an example on how to use solver here