[英]Goal Seek Macro with moving Goal and Seek variables
我有一个目标搜寻宏:
Sub GOALSEEK()
Range("K25").GOALSEEK Goal:=0, ChangingCell:=Range("K10")
End Sub
这适用于2015年第4季度,单元格K25
为0%。
我想调整宏以移动目标和寻找变量。
移动目标将存储在C25
( C25
等),移动“搜索”将取决于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中输入的四分之一立即做出决定。
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
您还可以进一步为要更改的单元格设置另一个范围变量。 让我知道这是否不适合您。
您可以尝试以下方法:
定义一个新的命名范围,例如SeekCell
并在Refers中输入以下内容:
=INDEX($I$25:$K$25,1,MATCH("2015"&$C$6,$I$9:$K$9))
定义一个新的命名范围,例如ChangeCell
并在“引用”中输入:
=INDEX($I$10:$K$10,1,MATCH("2015"&$C$6,$I$9:$K$9))
定义一个新的命名范围,例如GoalCell
并在“引用”中输入以下名称:
=$C$25
在VBA代码中使用:
Range("SeekCell").GOALSEEK Goal:=Range("GoalCell"), ChangingCell:=Range("ChangeCell")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.