目标寻找移动目标和寻求variables的macros
我有一个目标寻求macros:
Sub GOALSEEK() Range("K25").GOALSEEK Goal:=0, ChangingCell:=Range("K10") End Sub
这适用于2015Q4,单元格K25
在0%。
我想调整这个macros来移动Goal和Seekvariables。
移动的目标将被存储在C25
( C25
等)中,并且移动的search将依赖于C6
(Q2,Q3,Q4,其将分别映射到I25,J25,K25)。
编辑
经过一番修改之后,我发现移动的目标可以通过改变Goal:=0
到Goal:=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")