A fórmula do MS Excel funciona, exceto quando eu adiciono iferror (), então ele produz um erro de runtime 1004

0

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?

    
por Steve G. 28.09.2016 / 15:43

0 respostas