[英]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.