Eu tenho uma fórmula em uma célula:
=IF(INDEX(insurance_column_date,LOOKUP(2,1/(insurance_column_to=B59),ROW(insurance_column_to))-4)>0,INDEX(insurance_column_date,LOOKUP(2,1/(insurance_column_to=B59),ROW(insurance_column_to))-4),"No data")
E isso funciona perfeitamente na maioria dos casos, mas quando não é possível encontrar um valor de pesquisa, há uma divisão por erro 0 em 1/(insurance_column_to=B59)
. Nesse caso, recebo # N / A. Justo. Então eu adiciono a função iferror à célula:
=IFERROR(IF(INDEX(insurance_column_date,LOOKUP(2,1/(insurance_column_to=B59),ROW(insurance_column_to))-4)>0,INDEX(insurance_column_date,LOOKUP(2,1/(insurance_column_to=B59),ROW(insurance_column_to))-4),"No data"),"No data")
E tudo é perfeito. Eu recebo "Sem dados" nas células apropriadas.
No entanto, quando eu executo uma macro (totalmente não relacionada) - que deve ocultar certas linhas - agora recebo um erro em tempo de execução 1004: "Erro definido pelo aplicativo ou definido pelo objeto" quando atinge essa linha : pWorksheetName = ActiveWorkbook.Names(pCounter).RefersToRange.Parent.Name
Mesmo se eu retornar a fórmula à sua sintaxe não-iferror (), o erro de tempo de execução ainda será exibido. Eu li algumas causas poderia ser que a fórmula resultaria em uma cadeia de mais de 911 caracteres (impossível neste caso) ou contendo muitas entradas de legenda (não sei o que são). Eu executei a macro em dois computadores separados e obtive os mesmos resultados.
Alguém sabe qual é a causa disso ou como corrigi-lo?