Как да използвате целта за търсене в Visual Basic

За щастие целта за търсене е напълно интегрирана в VBA, така че написването на макрос, за да се използва, е лесно.

Стъпка 1

Отворете документа в Excel, в който искате да стартирате макроса за търсене на цел.

Стъпка 2

Намерете две клетки, в които искате да използвате целта за търсене. Първата трябва да е клетката, в която имаш фиксирана цел. Вторият трябва да бъде, когато позволите на Excel да се промени, за да постигне целта. Стойността на първата клетка трябва да бъде формула, базирана на втората формула (в противен случай промените, направени от Excel във втората клетка, нямат значение, тъй като те няма да се появят в първата).

Стъпка 3

Отворете прозореца за макроси. В Excel 2007 или по-късно можете да го направите, като кликнете върху раздела "Преглед" в списъка и след това върху "Макроси". В предишни версии на Excel кликнете върху менюто "Инструменти", изберете "Макроси" и след това "Макроси".

Стъпка 4

Въведете името на макроса за търсене на цел в прозореца за макроси и след това кликнете върху "Създаване". Това ще стартира програмата Visual Basic за приложенията на редактора и ще ви покаже текста на новия макрос, който ще се появи като празен подпрограма като този:

Sub MyMacroName () Крайна под

Стъпка 5

Създайте обемен диапазон, представляващ клетката, за която имате известна цел (първата клетка от Стъпка 2). Например, ако искате да търсите за клетка A1, напишете:

Дим целКато като обхват goalCell = ThisWorkbook.Worksheet (1) .Range ("A1")

Стъпка 6

Създайте диапазон на обекта, който представлява клетката, която искате да промени в Excel, за да накара първата клетка да достигне новата цел. Например, ако искате Excel да манипулира клетка A2, напишете:

Променлива променливаCell As Range variableCell = Тази работна книга.Работа (1) .Размер ("A2")

Стъпка 7

Намерете метода GoalSeek в обхвата на целевата клетка. Като първи аргумент той предлага стойността, на която искате да приложите целта за търсене; като аргумент, той предлага обхвата на променливата клетка. Например, ако искате да приложите целта на целта на 0, напишете:

goalCell.GoalSeek (0, variableCell)