O Excel VBA Find falha quando chamado a partir da planilha

0
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

O mesmo código funciona (encontra qualquer valor) quando colado na janela de depuração. Mas quando chamado como uma expressão de uma planilha, ele falha, não encontrando nada.

Alguma sugestão?

    
por Excel VBA problem with Find 14.08.2013 / 11:17

1 resposta

1

Algumas coisas

  • As funções precisam ser colocadas em um módulo ou não funcionarão
  • Chame a função do usuário do Excel com [A1]: =fred()
  • você pode retornar um valor para o Excel se alterar um pouco seu código: fred = v.Address
  • altere exit function para end function

Functionfred()DimwsAsWorksheetDimvSetws=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
    
por 14.08.2013 / 11:36