Assumi que o erro estava dentro do código porque, quando recebi o erro de tempo de execução, não havia saída para a célula especificada. O problema realmente ocorre se uma fórmula fosse escrita em uma célula e gerasse a janela pop-up que diz "Encontramos um problema com essa fórmula ..." Não é o mesmo que #NAME ?, #VALUE! , # N / A erros de tipo. No meu caso, meu código definiu um intervalo em uma tabela, chamado MainTable e um dos cabeçalhos de coluna foi Effective Cost. O código define uma fórmula como uma string referenciando MainTable [Cost], que deveria ter sido MainTable [Effective Cost].
O vba gerará um erro de tempo de execução, o sub será interrompido e a string do problema nunca será enviada para a célula. O código a seguir irá parar um sub. (o extra "(" dará o erro de fórmula da janela pop-up)
Range("A1").Value = "=Sum((B2:B4)"
O código a seguir funciona ininterruptamente, apesar de dar um erro # NOME? erro na célula A1.
Range("A1").Value = "=Sum(PotatoSalad)"
Eu também fiz um teste rápido com uma série de strings. Armazenar fórmulas em cadeias de caracteres dentro de uma matriz parece contornar a questão do código ser interrompido, pois as fórmulas não serão avaliadas até serem atualizadas. Esta questão vai para mais detalhes sobre o que acontece quando se usa uma matriz para despejar fórmulas em células - Longa história curta usando uma matriz variante fará com que as fórmulas para avaliar e parar o sub. link
O código a seguir funcionará até que a célula A1 seja forçada a recalcular.
Dim MyArray(0 to 0) as String
MyArray(0) = "=Sum((B2:B4)"
Range("A1").Value = MyArray()
Passar a mesma matriz como uma variante gerará um erro de tempo de execução.