Търсете цел във VBA
Търсене на цел във VBA е процесът, чрез който можем да се насочим към целта, която искаме да постигнем. Това е процес, който показва колко трябва да направим, за да постигнем поставената цел. Да предположим, че влакът има време на пристигане 10 часа сутринта. Влакът се движи от понеделник до петък между A и B. И като се има предвид средното време на пристигане на този влак от A до B е точно 10 AM без никакво закъснение. Така че, ако следното е времето на пристигане на влака 10:16 AM, 10:01 AM, 9:57 AM, 10:04 AM за последователни 4 дни от понеделник до четвъртък. И за да поддържа средното време от 10 часа сутринта, което е зададената цел за този влак, трябва да пристигне в 9.45 ч., Само за да поддържа средното време на пристигане от 10 часа сутринта. Това може да бъде още по-готино, ако имаме с какво да се автоматизираме. Идва VBA Goal Seek .
Синтаксис за търсене на цел:
По-долу е синтаксисът на VBA Goal Seek.
Където,
- Диапазон: клетката на целевия диапазон, която съдържа текущото ограничение.
- Цел : Ограничението или целта, която искаме да постигнем.
- Промяна на клетката: клетката, в която ще видим необходимото ограничение, което трябва да бъде постигнато.
Как да използвате търсенето на цел в Excel VBA?
Ще научим как да използваме Цел на търсене в Excel, като използваме кода VBA.
Можете да изтеглите този шаблон на VBA за търсене на Excel тук - VBA Goal Търсете шаблон на ExcelТърсене на цел VBA - Пример №1
Средната точност, която служителите трябва да поддържат 95% седмично. По-долу имаме данните за точността на служителя от понеделник до четвъртък със средна точност 92, 25%, която се споменава в клетка C8, както е показано по-долу.
Сега, според синтаксиса на „Цел на търсене“, имаме клетка „Диапазон“, която има текущата стойност за захранване, и „Целева стойност“, която е средна точност от 90%, която трябва да бъде постигната от този служител.
В този пример, когато точността на работата на служителя при наблюдение. За това следвайте стъпките по-долу:
Стъпка 1 : Отворете модула от раздел Вмъкване на менюто, както е показано по-долу.
Стъпка 2: Сега напишете Sub процедурата на VBA Цел на търсенето, както е показано по-долу. Можем да изберем всяко име, за да го определим.
Код:
Sub Goal_Seek () Край Sub
Стъпка 3: Съгласно синтаксиса, ние ще изберем клетката за диапазон, която съдържа текущата средна стойност, която ще бъде подадена. Тук тази клетка е C8.
Код:
Подцелеви диапазон на целевата цел () („C8“). Край Sub
Стъпка 4: Сега изберете функцията за търсене на цел и според синтаксиса изберете целевата стойност, която трябва да постигнем. Ето, тази цел е 90% точна.
Код:
Диапазон на Sub Goal_Seek () („C8“). GoalSeek Цел: = 90 Край Sub
Стъпка 5: Сега, най-сетне, изберете обхвата на тази клетка, където трябва да видим необходимата точност, която трябва да бъде постигната. Тук тази клетка е C6 с препратка към петък.
Код:
Подцелеви диапазон на Целта_Сеек () ("С8"). Цел на целта на целта: = 90, Промяна на клетката: = Обхват ("С6") Краен под
Стъпка 6: Веднъж свършена, ще компилираме кода и ще го изпълним. Ще видим, че клетка C6 има стойността на Променящата се клетка като 81. Това означава, че ако този служител е успял да постигне дори 81% точност в петък, тогава той лесно ще може да постигне точността от 90%.
Търсене на цел VBA - Пример №2
В този пример имаме данни за оборотно време (TAT или време за завършване на дейността) на някой служител на екип, който изпълнява една и съща задача всеки ден. 5 служители извършват същата дейност от понеделник до петък. Целевото време е зададено за завършване на тази дейност е 50 минути. И трябва да намерим колко време трябва да отдели всеки служител, за да поддържа средното време на завършване 50 минути или по-малко. За това следвайте стъпките по-долу:
Стъпка 1: В Модул напишете подпроцедурата за търсене на цел VBA, както е показано по-долу.
Код:
Sub Goal_Seek2 () Край Sub
Стъпка 2: Определете променлива, чрез която можем да преброим откъде трябва да стартираме търсенето на цел като дълга.
Код:
Sub Goal_Seek2 () Dim A като Long End Sub
Стъпка 3: Сега отново определете още 2 променливи, като използвате DIM с тип данни Диапазон . Първата ще бъде използвана за проследяване на текущата крайна средна стойност, а втората ще бъде използвана за свързване на референтната клетка, където искаме изхода.
Код:
Sub Goal_Seek2 () Dim A As Long Dim FinalAvg As Range Dim Reference as Range End Sub
Стъпка 4: Определете друга променлива като цяло число, за да зададете целта, която искаме да постигнем.
Код:
Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Като диапазон Dim Reference като диапазон Dim target като целият край Sub
Стъпка 5: Тук нашата цел е 50 минути, така че задайте променливата Target с тази стойност.
Код:
Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Като диапазон Dim Reference като обхват Dim target като целочислена цел = 50 край Sub
Стъпка 6: Отворете контура For-Next, както е показано по-долу.
Код:
Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Като диапазон Dim Reference като обхват Dim target като целочислена цел = 50 за следващия край
Стъпка 7: Сега изберете обхвата на тези клетки, които имат стойностите. Тук тези редове са от 3 до 7 числа.
Код:
Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Като диапазон Dim Reference като обхват Dim target като целна цел = 50 за A = 3 до 7 Next A End Sub
Стъпка 8: Задайте крайната средна стойност, от която искаме да стигнем. Тук тази клетка е в ред 9.
Код:
Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Като диапазон Dim Reference като обхват Dim Target като цяло число = 50 за A = 3 до 7 задайте FinalAvg = клетки (9, A) Next A End Sub
Стъпка 9: По подобен начин задайте диапазона на референтната клетка, където искаме да видим целта да търси стойност, за да постигнем целта и този ред на клетката е 7.
Код:
Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Като диапазон Dim Reference като обхват Dim Target като цяло число = 50 за A = 3 до 7 задайте FinalAvg = клетки (9, A) Задайте референция = клетки (7, A) Следващ край подводница
Стъпка 10: Най-сетне приложете VBA Целевото търсене с подходящ синтаксис, както е показано по-долу.
Код:
Sub Goal_Seek2 () Dim A As Long Dim FinalAvg като диапазон Dim Reference като обхват Dim target като целна цел = 50 за A = 3 до 7 задайте FinalAvg = клетки (9, A) Задайте референция = клетки (7, A) FinalAvg.GoalSeek Цел, справка Следващ Край Sub
Стъпка 11: Сега компилирайте пълния код, като натиснете функционалния клавиш F8 и стартирайте след това, ако не се намери грешка.
Ще видим, на ред 7 с помощта на Goal Seek ще получим време за минути, които всеки служител трябва да постигне в петък, за да поддържа средната стойност от 50 минути или по-ниска.
Ето как работи VBA Goal Seek.
Плюсове на Excel VBA Цел на търсенето
- Целта на VBA е много полезна при проследяване на представянето по различни начини.
- Това може да се използва и в много статистически дейности, където трябва да проследим и насочим лимита на данни, който искаме да постигнем.
- Това показва точната стойност, която човек трябва да постигне, за да постигне целта.
Неща, които трябва да запомните
- Това може да се използва както в Excel, така и в VBA.
- Клетката за резултат със средна или друга функция трябва винаги да има формулата.
- Можем да въведем целевата стойност в Целта в синтаксиса на търсенето на цел, или иначе може да определим това по-рано отделно.
- Можем да променим и актуализираме целевата стойност според нашите нужди и изисквания.
- Тази задача не може да бъде изпълнена чрез запис на опцията за макроси, налична в раздела за програмисти.
- След като сте готови, не забравяйте да запазите файла excel във формат за активиране на макрос, за да запазите написания код.
Препоръчителен член
Това е ръководство за търсене на цели VBA. Тук обсъждаме как да използвате Целево търсене в Excel VBA, заедно с практически примери и шаблон за excel за сваляне. Можете да разгледате и другите ни предложени статии -
- VBA колекция (примери)
- VBA IF изявления | Excel Шаблони
- Как да използвате функция за сортиране на Excel VBA?
- VBA докато цикъл (примери с шаблон на Excel)
- Функция за околната среда на VBA