我怎样才能加快我的目标寻求代码?

时间:2015-08-14 16:48:46

标签: excel-vba vba excel

尝试学习新技巧所以请耐心等待, 我试图通过耗尽我所有的日常容量来优化容量而不会耗尽每年的容量。所以有很多目标寻求。下面的代码有效但速度慢,特别是当我做了几个月的事情。有没有办法让我加快速度?我正在做什么常见的noob错误?

Sub cashPark()


Set enddate = Sheets("Cash").Range("E4")
Set Window = Sheets("Cash").Range("D8")
Set TargetWindow = Sheets("Cash").Range("D9")
Set datecount = Sheets("Cash").Range("E4")
Set cashParkVol = Sheets("Inventory").Range("BW1")
Set Repeat = Sheets("Cash").Range("E5")

cashParkVol.Offset(datecount, -2).GoalSeek _
 Goal:=0 And Window.Value > 0, _
 ChangingCell:=cashParkVol.Offset(datecount, 0)


Let x = 0
Do While x < Repeat
cashParkVol.Offset(datecount + x, -2).GoalSeek _
    Goal:=0 And Window.Value > TargetWindow, _
    ChangingCell:=cashParkVol.Offset(datecount + x, 0)
x = x + 1
Loop

End Sub

1 个答案:

答案 0 :(得分:0)

我知道这已经过时了,但我偶然发现了这个问题,我希望能够回答这个问题,希望这里的观点可能会有所帮助。

如果没有看到你的实际excel模型很难说,但正如Doug的评论中部分暗示的那样,这听起来像是一个可以从另一种方法中受益的问题。我的猜测是你的目标寻求实际上是可以通过Linear Programming完成的,在简化的意义上,你将解决如下问题:

enter image description here

基本上,您根据全年每个时间点使用该容量的价值来优化您对日常容量的使用。你的实际问题肯定是不同的,但我希望它足够开始。

在这种情况下,Excel的内置求解器无法解决该大小的问题,而Open Solver将起作用,或者对于更复杂或非线性的问题,Solver Studio