Търсене на цел на VBA - Как да използвам търсенето на цели за намиране на стойност в Excel VBA?

Търсене на цел в Excel VBA

Goal Seek е инструментът, наличен в Excel VBA, който ни помага да намерим необходимия брой, който трябва да бъде постигнат, за да стигнем до зададената цел.

Например вие сте студент и сте се насочили към среден резултат от 90% от шест налични предмета. Към момента сте завършили 5 изпита и ви остава само един предмет. Очакваните резултати от пет завършени предмета са 89, 88, 91, 87, 89 и 90. Сега искате да знаете колко трябва да отбележите на финалния изпит, за да постигнете общата средна процентна цел от 90%.

Това може да се направи с помощта на GOAL SEEK в работен лист на Excel, както и при кодиране на VBA. Нека да видим как работи с VBA.

Синтаксис на търсене на цел на VBA

Във VBA Goal Seek трябва да посочим стойността, която променяме, и да стигнем до крайния целеви резултат, така че предоставете референтна клетка, като използвате обекта VBA RANGE По-късно можем да осъществим достъп до опцията GOAL SEEK.

По-долу е синтаксисът на търсене на цели във VBA.

  • Обхват (): В това трябва да предоставим референтната клетка там, където трябва да постигнем целевата стойност.
  • Цел: В този аргумент трябва да въведем каква е целта, която се опитваме да постигнем.
  • Промяна на клетката: В този аргумент трябва да предоставим чрез промяна коя стойност на клетката ни е необходима, за да постигнем целта.

Примери за Excel VBA Goal Seek

Следват примери за търсене на цели в Excel VBA.

Търсене на цел на VBA - Пример # 1

Нека вземем за пример само среден резултат от изпит. По-долу е очакваният резултат от 5 предмета от попълнения изпит.

Първо, трябва да стигнем до това какъв е средният резултат от попълнените 5 предмета. Приложете функцията AVERAGE в клетката B8.

В този пример нашата цел е 90 и променящата се клетка ще бъде B7 . Така че Goal Seek ще ни помогне да намерим целевия резултат от крайния предмет, за да постигнем общата средна стойност от 90.

Стартирайте подпроцедурата в модула за клас VBA.

Код:

Sub Goal_Seek_Example1 () Край Sub

Сега се нуждаем от резултата в клетка B8, така че предоставете тази препратка към диапазона, като използвате обекта RANGE.

Код:

Sub Goal_Seek_Example1 () Диапазон ("B8") Край Sub

Сега поставете точка и въведете опцията „Търсене на цел“.

Първият аргумент е „Цел“ за това. Трябва да въведем крайната си цел, за да пристигнем в диапазон B8. В този пример се опитваме да постигнем целта от 90.

Код:

Sub Goal_Seek_Example1 () Диапазон ("B8"). GoalSeek Goal: = 90 Краен Sub

Следващият аргумент е „Промяна на клетката“ за това, трябва да предоставим в коя клетка ни е необходима новата стойност за постигане на целта.

Код:

Sub Goal_Seek_Example1 () Обхват ("B8"). GoalSeek Goal: = 90, ChangingCell: = Range ("B7") End Sub

В този пример нашата променяща се клетка е Sub 6 клетка, т.е. B7 клетка.

Добре, нека пуснем кода, за да видим какво трябва да се направи в последната тема, за да се постигне общият среден процент от 90.

И така, в последната тема трябва да се отбележат 95, за да се получи общата средна стойност от 90.

Търсене на цел на VBA - Пример # 2

Научихме как да прилагаме GOAL SEEK, за да намерим броя, необходим за постигане на целта. Сега ще видим някои усъвършенствани примери за намиране на окончателен резултат от изпит за повече от един студент.

По-долу са очакваните резултати от 5 предмета след изпита.

Тъй като намираме целта за повече от един ученик, трябва да използваме цикли. По-долу е кодът за вас.

Код:

Sub Goal_Seek_Example2 () Dim k As Long Dim ResultCell As Range Dim ChangingCell As Range Dim TargetScore As Integer TargetScore = 90 For k = 2 To 5 Set ResultCell = Cells (8, k) Set ChangingCell = Cells (7, k) ResultCell.GoalSeek TargetScore, ChangingCell Next k End Sub

Този код ще премине през всички резултати на студентите и ще получи окончателен резултат от изпит, необходим за постигане на общата средна стойност от 90

Така че получихме крайния резултат сега като,

Студент А трябва да отбележи само 83, за да осигури общите 90 процента, а студент D трябва да отбележи 93.

Но вижте студентите B & C. Те трябва да отбележат по 104 на финалния изпит, което изобщо не е възможно.

Подобно на това, използвайки анализ на GOAL SEEK, ние можем да намерим необходимия брой, за да постигнем целевия брой в средата на проекта или процеса.

Неща за запомняне

  • Goal Seek се предлага както с инструментите за работен лист, така и с инструмента VBA.
  • Получената клетка винаги трябва да съдържа формула.
  • Трябва да въведем стойността на целта и да променим препратката към клетката към инструмента за търсене на цел.

Интересни статии...