如何在Excel用户函数中使用目标搜索函数?
有一种在MS excel中使用目标搜索的方法,如下代码所示。它很好用如何在Excel用户函数中使用目标搜索函数?,excel,vba,seek,excel-udf,Excel,Vba,Seek,Excel Udf,有一种在MS excel中使用目标搜索的方法,如下代码所示。它很好用 Sub GSeek() With Worksheets("Sheet1") .Range("H18").GoalSeek _ Goal:=.Range("H21").Value, _ ChangingCell:=.Range("G18") End With End Sub 我想用一个函数来做如下的
Sub GSeek()
With Worksheets("Sheet1")
.Range("H18").GoalSeek _
Goal:=.Range("H21").Value, _
ChangingCell:=.Range("G18")
End With
End Sub
我想用一个函数来做如下的目标搜索
Function fSeek(a As Range, b As Range, c As Range)
a.GoalSeek Goal:=b.Value, ChangingCell:=c
fSeek = "Ok"
End Function
然而,代码运行平稳,在c范围内没有得到任何答案。我错在哪里?我正在写一个答案,因为这个问题似乎正在死灰复燃 底线是当从公式调用时,用户定义函数(UDF)不允许更改其他单元格 解决方案:要自动查找godl,请编写VBA宏,而不是UDF 宏可以自动在任何范围或一组单元格上寻找目标。由于宏没有参数,因此有许多方法允许用户指定要
GoalSeek
的单元格集和参数,并将它们路由到范围。GoalSeek
方法:
1-设计专用的UserForm
2-使用VBA的InputBox
函数,或者可能使用Excel的应用程序。InputBox
函数和参数类型:=8
输入范围
3-在工作表上指定一些单元格,用户可以在其中输入参数。谢谢大家的回答。过了很长时间,我在这里又发现了我的问题。 我碰巧通过这个事件找到了这个问题的答案 在Microsoft Excel Object-Sheet1(Sheet1)中,我们只能编写以下代码:
'----------------------------------------------
' Goal seeking when the worksheet changes.
'----------------------------------------------
' Here we want to do goal seek for Range("H18")
' with the Goal cell as Range("H21")
' and the changing cell as Range("G18").
'
Private Sub Worksheet_Change(ByVal Target As Range)
Range("H18").GoalSeek Goal:=Range("H21"), ChangingCell:=Range("G18")
End Sub
很酷吗
Yun从公式调用时,不允许用户定义函数(UDF)更改其他单元格。非常感谢您的回复。有没有办法达到同样的目标?我真的想在同一个工作表中寻找许多目标。你可以这样做,但通过宏,而不是通过公式。但宏不能使用参数。带有参数的子过程根本不显示宏列表。您始终可以找到一种方法来指定要查找的内容和参数。如果这些单元格不是先验已知的单元格,您可以使用窗体或
InputBox
(在宏中)让用户输入它们。非常感谢。我已经成功地创建了一个对话框,按照您的建议进行目标搜索。