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工具均提供“目标搜索”功能。
- 结果单元格应始终包含一个公式。
- 我们需要输入目标值并更改对目标搜索工具的单元格引用。