簡體   English   中英

具有移動目標和搜索變量的目標搜索宏

[英]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%。

我想調整宏以移動目標和尋找變量。

移動目標將存儲在C25C25等),移動“搜索”將取決於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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM