VBA寻求目标|如何使用目标寻求在Excel VBA中寻找价值?

Excel VBA中的目标搜寻

目标搜寻是excel VBA中提供的工具,可帮助我们找到达到设定目标所需的数量。

例如,您是一名学生,而您针对六个可用科目的平均得分目标是90%。截至目前,您已经完成了5项考试,并且只剩下一门科目,而五门已完成的科目的预期分数分别为89、88、91、87、89和90。最终考试要达到整体平均百分比目标的90%。

这可以通过在Excel工作表以及VBA编码中使用GOAL SEEK来完成。让我们看看它如何与VBA配合使用。

VBA目标搜寻语法

在VBA目标搜索中,我们需要指定要更改的值并获得最终的目标结果,因此可以使用VBA RANGE对象提供单元格引用,稍后我们可以访问GOAL SEEK选项。

以下是VBA中目标搜寻的语法。

  • 范围(): 在这种情况下,我们需要在需要达到目标值的位置提供单元格引用。
  • 目标: 在这个论点中,我们需要输入我们要实现的目标。
  • 改变细胞: 在这个论点中,我们需要通过更改实现目标所需的单元格值来进行供应。

Excel VBA目标寻求的示例

以下是Excel VBA中目标搜索的示例。

您可以在此处下载此VBA目标搜索Excel模板– VBA目标搜索Excel模板

VBA寻求目标–示例1

让我们仅以考试平均成绩为例。以下是完成考试的5门科目的预期分数。

首先,我们需要得出完成的5门科目的平均分数是多少。在B8单元格中应用平均功能。

在此示例中,我们的目标是90,更改单元格将是 B7。因此,Goal Seek将帮助我们从最终主题中找到目标得分,以达到90的总体平均水平。

在VBA类模块中启动子过程。

代码:

 Sub Goal_Seek_Example1()结束Sub 

现在我们需要B8单元格中的结果,因此请使用RANGE对象提供此范围参考。

代码:

 Sub Goal_Seek_Example1()范围(“ B8”)结束Sub 

现在放一个点并输入“ Goal Seek”选项。

第一个参数是“目标”,为此,我们需要输入最终目标以到达RANGE B8。在此示例中,我们正在尝试达到90的目标。

代码:

 Sub Goal_Seek_Example1()Range(“ B8”)。GoalSeek目标:= 90结束Sub 

下一个参数是“更改单元格”,为此,我们需要提供在哪个单元格中需要新值以实现 目标。

代码:

 Sub Goal_Seek_Example1()Range(“ B8”)。GoalSeek目标:= 90,ChangeingCell:= Range(“ B7”)结束Sub 

在此示例中,我们要更改的单元格是Sub 6单元格,即B7单元格。

好的,让我们运行代码,看看在最终主题中需要做些什么才能使总体平均百分比达到90。

因此,在最后的科目中,必须对95进行评分才能获得90的总体平均水平。

VBA寻求目标–示例2

我们已经学习了如何使用“目标搜索”来找到达到目标所需的数量。现在,我们将看到一些高级示例,可以为多个学生找到期末考试成绩。

以下是考试后5门科目的预期成绩。

由于我们正在寻找不止一个学生的目标,因此我们需要使用循环,以下是适合您的代码。

代码:

 Sub Goal_Seek_Example2()将k设为长Dim ResultCell作为范围Dim ChangesCell作为范围Dim TargetScore作为整数TargetScore = 90对于k = 2至5 TargetScore,ChangeingCell下一个k结束子 

该代码将遍历所有学生的分数,并达到最终分数(达到90分的平均分数)。

所以我们现在得到了最终结果,

学生A只需得分83,即可确保全部90%的分数,学生D需要得分93。

但是看看学生B和C,他们需要在期末考试中分别得分104,这是完全不可能的。

像这样使用GOAL SEEK分析,我们可以在项目或过程中找到达到目标数量所需的数量。

要记住的事情

  • 工作表工具和VBA工具均提供“目标搜索”功能。
  • 结果单元格应始终包含一个公式。
  • 我们需要输入目标值并更改对目标搜索工具的单元格引用。