2016-02-05 3 views
0

Я пытаюсь использовать команду goalseek в VBA в таблице Excel. У меня есть значение в F3, F7 и F18. При изменении значения в F3 я получаю эту ошибку обратно:Excel VBA Goalseek

Ошибка выполнения «1004»: Ссылка не действительна

Вот код

Private Sub Worksheet_Change(ByVal Target As Range) 
With Worksheets("Mdl") 
If Target = Range("F3") Then 

    Range("F3").GoalSeek Goal:=Range("F7"), ChangingCell:=Range("F18") 


End If 
End With 
End Sub 
+3

Если вы хотите использовать инструкцию 'With Worksheets (« Mdl »), вы должны добавить«. ». перед каждым 'Range':' .Range («F3»). GoalSeek ... ' – Porcupine911

+0

Чтобы добавить к комментарию @ Porcupine911 - если вы не используете' .' перед 'Range' (или' Cells() ' , 'Rows()', 'Columns()'), нет смысла использовать 'With', насколько я знаю. – BruceWayne

+0

я вынул С Worksheets, но я все еще получаю ту же ошибку, Private Sub Worksheet_Change (ByVal Target As Range) Если Target = Range ("F3") Тогда Range ("F3") GOALSEEK Цель:. = Диапазон («F7»). Значение, ChangeCell: = Диапазон («F18») Конец Если Конец Sub – user3803334

ответ

0

GOALSEEK требует формулу в ячейке, которую вы создаете, поэтому, если вы измените Range («F3») на значение вместо формулы, появится ошибка.

+1

Спасибо! Кажется, это помогло вместе с ответами Брюса и Pocupine911 – user3803334

Смежные вопросы