目标寻找移动目标和寻求variables的macros

我有一个目标寻求macros:

Sub GOALSEEK() Range("K25").GOALSEEK Goal:=0, ChangingCell:=Range("K10") End Sub 

这适用于2015Q4,单元格K25在0%。

我想调整这个macros来移动Goal和Seekvariables。

移动的目标将被存储在C25C25等)中,并且移动的search将依赖于C6 (Q2,Q3,Q4,其将分别映射到I25,J25,K25)。

在这里输入图像说明

编辑

经过一番修改之后,我发现移动的目标可以通过改变Goal:=0Goal:=Range("Cell")

 Sub GOALSEEK() Range("K25").GOALSEEK Goal:=Range("C25"), ChangingCell:=Range("K10") End Sub 

还不知道如何让Seek移动。

在下面的代码中添加一些条件逻辑,以便根据在单元格C6中input哪个季度来做出决定。

 Sub GOALSEEK() Dim gseek, chngcell as Range If Range("C6") = "Q2" Then Set gseek = Range("I25") Set chngcell = Range("I10") Elseif Range("C6") = "Q3" Then Set gseek = Range("J25") Set chngcell = Range("J10") Elseif Range("C6") = "Q4" Then Set gseek = Range("K25") Set chngcell = Range("K10") End If gseek.GOALSEEK Goal:=Range("C25"), ChangingCell:=chngcell End Sub 

你可以进一步设置另一个范围variables到你想要改变的单元格。 让我知道如果这不适合你。

您可以尝试以下方法:

定义新的命名范围调用它例如SeekCell和在引用中input:

 =INDEX($I$25:$K$25,1,MATCH("2015"&$C$6,$I$9:$K$9)) 

定义新的命名范围调用它例如ChangeCell和Refers要input:

 =INDEX($I$10:$K$10,1,MATCH("2015"&$C$6,$I$9:$K$9)) 

定义新的命名范围,例如GoalCell和Refers要input:

 =$C$25 

在VBA代码中使用:

 Range("SeekCell").GOALSEEK Goal:=Range("GoalCell"), ChangingCell:=Range("ChangeCell")