Jak korzystać z funkcji Szukaj wyniku w języku Visual Basic

Na szczęście funkcja Goal Seek jest całkowicie zintegrowana z VBA, więc napisanie makra, aby z niej skorzystać, jest łatwe.

Krok 1

Otwórz dokument programu Excel, w którym chcesz uruchomić makro Szukaj wyniku.

Krok 2

Znajdź dwie komórki, w których chcesz zastosować funkcję Szukaj wyniku. Pierwsza musi być komórką, w której masz ustalony cel. Drugie powinno być tam, gdzie pozwalasz Excelowi zmienić się, aby osiągnąć cel. Wartość pierwszej komórki musi być formułą opartą na drugiej formule (w przeciwnym razie zmiany wprowadzone przez Excel w drugiej komórce nie mają znaczenia, ponieważ nie pojawią się w pierwszej).

Krok 3

Otwórz okno Makro. W programie Excel 2007 lub nowszym można to zrobić, klikając kartę "Widok" na liście, a następnie klikając przycisk "Makra". W poprzednich wersjach programu Excel, kliknij menu "Narzędzia", ​​wybierz "Makra", a następnie "Makra".

Krok 4

Wprowadź nazwę makra celu wyszukiwania w oknie Makro, a następnie kliknij "Utwórz". Spowoduje to uruchomienie programu Visual Basic dla aplikacji edytora i wyświetli tekst nowego makra, który pojawi się jako pusty podprogram podobny do tego:

Sub MyMacroName () End Sub

Krok 5

Utwórz zakres obiektów reprezentujący komórkę, dla której masz znany cel (pierwsza komórka kroku 2). Jeśli na przykład chcesz wyszukać cel w komórce A1, napisz:

Dim goalCell As Range goalCell = ThisWorkbook.Worksheet (1) .Range ("A1")

Krok 6

Utwórz zakres obiektów reprezentujący komórkę, którą chcesz zmienić w programie Excel, aby pierwsza komórka osiągnęła nowy cel. Na przykład, jeśli chcesz, aby Excel manipulował komórką A2, napisz:

Zmienna variableCell As Range variableCell = ThisWorkbook.Worksheet (1) .Range ("A2")

Krok 7

Znajdź metodę GoalSeek w zakresie komórki docelowej. Jako pierwszy argument oferuje wartość, na podstawie której chcesz zastosować wyszukiwanie celu; jako argument oferuje zasięg zmiennej komórki. Na przykład, jeśli chcesz zastosować Wynik wyszukiwania do 0, napisz:

goalCell.GoalSeek (0, variableCell)