VBA - argumento não opcional erro com .Find

1

Estou tentando usar .Find para encontrar a célula que contém o nome que o usuário selecionou, com isso pretendo descobrir as informações que estão na célula ao lado. Mas quando o depurador chega à linha em que estou usando. Encontre o erro "Argumento não opcional" e está destacando "Intervalo". O erro está ocorrendo porque não estou usando corretamente .Find ou é porque .Find não é a coisa certa para a tarefa que estou tentando realizar.

    Set NameCell = Range.Find(Name, , Range("OFFSET('People Info'!$A$1,1,0,COUNTA('People Info'!$A:$A)-1,1)"))
Matthew Johnston
fonte
Defina o intervalo e depois o deslocamento
Raystafarian 4/16
@Raystafarian O que você quer dizer com definir o intervalo e depois compensar? defino o intervalo em uma linha acima ou no argumento antes do deslocamento?
Matthew Johnston
Linhas diferentes
Raystafarian

Respostas:

0

Você precisa fazer isso separadamente, assim -

Set rngItem = WSTest.Range("A:A").Find(c.Value, LookIn:=xlValues, lookat:=xlWhole)
Set rngItem = rngItem.Offset(1,1)

Primeiro encontre o que está procurando e depois desloque seu alcance. Não entendo bem seu objetivo, então não posso usar seu exemplo.

Raystafarian
fonte
Eu estava usando o deslocamento anteriormente para criar uma lista de nomes para uma caixa de combinação e pensei em copiá-lo e colá-lo como o intervalo para o código procurar o nome quando o usuário selecionar o nome, esse não é o deslocamento para o informações na célula próxima a ela. Ainda preciso para tê-lo em linhas separadas
Matthew Johnston
Sim, você não estiver usando os .Findargumentos corretamente
Raystafarian
oh ok, qual seria uma alternativa melhor para o deslocamento então?
Matthew Johnston
Desculpe, ainda não entendi o que você quis dizer. Você tem um intervalo encontrado com nomes e deseja usá-lo para encontrar algo?
Raystafarian
Não importa, eu apenas usei o Range ("A: A") e funcionou perfeitamente.
Matthew Johnston