Как использовать функцию поиска цели в пользовательской функции Excel?

Есть способ использовать поиск цели в MS Excel как следующий код. Работает нормально.

   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. Где я не прав?

2 ответа

Спасибо всем, что ответили мне. Я нашел свой вопрос снова здесь после долгого времени. Мне довелось найти решение этого вопроса с помощью мероприятия.

В 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) не разрешается изменять другие ячейки при вызове из формулы.

Решение: Чтобы автоматизировать поиск бога, напишите макрос VBA, а не UDF.

Макрос может автоматизировать поиск целей в любом диапазоне или наборе ячеек. Поскольку макрос не имеет параметров, существует множество способов разрешить пользователю указывать набор ячеек для GoalSeek и параметры, и направить их к Range.GoalSeek метод:

1- Дизайн посвященный UserForm

2- Используйте VBA InputBox функция или, возможно, Excel Application.InputBox функция с параметром type:=8 ввести диапазон.

3 - выделите несколько ячеек на рабочем листе, где пользователь может ввести параметры.

Другие вопросы по тегам