function fred
Dim ws As Worksheet
Dim v
    Set ws = Worksheets("outfile")
    set v = ws.Cells.Find(18709)
    If v Is Nothing Then Debug.Print "nothing"
    if not v is nothing then debug.print v.address

exit function

Тот же код работает (находит любое значение) при вставке в окно отладки. Но когда вызывается как выражение из электронной таблицы, оно не может найти ничего.

Какие-либо предложения?

1 ответ1

1

Пара вещей

  • Функции должны быть размещены в модуле, иначе они не будут работать
  • Вызвать пользовательскую функцию из Excel с помощью [A1]: =fred()
  • вы можете вернуть значение в Excel, если вы слегка измените свой код: fred = v.Address
  • изменить exit function на end function


Function fred()
Dim ws As Worksheet
Dim v
    Set ws = Worksheets("outfile")
    Set v = ws.Cells.Find(18709)
    If v Is Nothing Then fred = "nothing"
    If Not v Is Nothing Then fred = v.Address
End Function

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .