2015-07-03 4 views
0

Я пытаюсь запустить поиск цели, определив определенную ячейку, равную нулю, изменив другую ячейку в Excel с помощью VBA.VBA Offset Match Не работает

Я думаю, что ячейка, которую я хочу установить в ноль, меняет местоположение, поэтому мне нужно использовать комбинацию смещения совпадений.

Я получаю ошибку компиляции Недопустимый квалификатор при запуске кода. Есть идеи?

спасибо.

Private Sub CommandButton1_Click() 

Dim x As Integer 
x = Application.WorksheetFunction.match("G3", Range("I6:SF6"), 0).Value 

Range("I199").Offset(0, x.Value).GoalSeek Goal:=0, ChangingCell:=Range("GN197") 


End Sub 

ответ

1

Попробуйте заменить:

"G3" 

с:

Range("G3") 
+0

Согласно https://msdn.microsoft.com/en-us/library/office/ff835873.aspx, 'Lookup_value' является' Variant', поэтому использование '' G3 '' будет приемлемым (хотя и не что, возможно, хочет ОП). –

+0

@ sancho.s Я согласен с вами. –

+0

См. Мой ответ ... –

0

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

0

Согласно official documentation, возвращаемое значение WorksheetFunction.Match - это Double. Таким образом, вы, вероятно, не имеете Value. Попробуйте удалить его.

PS: У меня нет системы с Excel, чтобы проверить это.

PS2: Вы не указали линию, создающую ошибку.