Problema VLOOKUP estranho em uma planilha pesada de macro

0

Eu tenho um problema muito estranho com uma pasta de trabalho que eu construí que é muito dependente de macros. Centra-se em torno de um simples VLOOKUP() .

Atualmente, minha macro cria um item de linha em uma folha (Folha A) e copia o item de linha para outra (Folha B). Depois que esse item de linha é copiado, uso uma função VLOOKUP() na Folha B para procurar a data e a hora do item de linha na Folha A para confirmar que ainda está na pasta de trabalho.

Normalmente todo esse cenário funciona bem. O VLOOKUP() claramente pode encontrar o ID exclusivo na Folha B e rastreá-lo de volta para a Folha A.

O problema que estou tendo é que se alguém entrar na célula (usando F2 , clicando duas vezes na célula, etc) que contém a Data e Hora na Folha B, a função VLOOKUP() erros fora. Isso é resolvido pressionando F2 na célula Data e hora na Planilha A.

Isso está causando uma série de problemas porque eu tenho uma macro que exclui itens de linha caso eles cometerem erros, portanto, esse erro temporário está descartando tudo.

Eu tentei combinar formatos e outros, mas parece ser um problema bem único e estranho.

Alguém já encontrou isso anteriormente? Você pode compartilhar alguma correção?

Folha A (observe que a Data e hora reservada é uma ID única)

FolhaB

AfórmulaemA3é

=IFERROR(VLOOKUP($C3,'SheetA'!$A:$A,1,0),"Not in Book")

Esta é a aparência da Planilha B quando a fórmula comete erros:

    
por dom176 18.07.2018 / 21:19

1 resposta

0

Esse problema é causado por sua macro colocar um valor texto nas células Date&Time Booked , mas definir o formato numérico das células como General ou um formato de data personalizado (deliberadamente ou de outra forma ).

Quando você pressiona F2 e, em seguida, Enter na célula Date&Time Booked da Folha B, o Excel converte o datetime do texto em um datetime serial e ajusta o formato numérico formato de data personalizado (por isso, ainda parece o mesmo). Sua função VLOOKUP() agora está tentando comparar um datetime de texto com um datetime serial (ou seja, um número), portanto, é claro que eles não corresponderão. Repetir o processo na célula na Folha A converte esse valor para uma data / hora serial também, portanto, a correspondência é bem-sucedida novamente.

Sem ver sua macro e entender precisamente como você subseqüentemente usa os valores de data e hora reservados, é difícil fazer uma recomendação específica sobre como corrigir o problema.

A solução mais simples é definir a propriedade NumberFormat das Date&Time Booked cells para @ (Text).

A outra solução é modificar a macro para que ela grave os dados de série em série nas planilhas.

    
por 20.07.2018 / 19:45