Você provavelmente poderia tornar isso realmente dinâmico com o VBA, mas acho que é um exagero simplesmente adicionar uma fórmula a uma célula. O que você poderia fazer é fazer parecer que a célula está vazia até que os dados sejam adicionados às células pertinentes e, em seguida, arraste essa célula para centenas ou milhares de linhas.
Por exemplo, =IF(LEN(A1)=0,"",A1+B1)
mostrará uma célula vazia se A1 não contiver dados, mas executará a função A1 + B1 se isso acontecer. Se você arrastar abaixo da linha final, a coluna aparecerá em branco até que os dados sejam adicionados à próxima célula na coluna A.
Existem várias outras fórmulas que você pode usar para verificar células em uso, como =ISBLANK(A1)
OR =ISTEXT(A1)
com base em como você deseja verificar dados. Eu acho que a função LEN é mais fácil de se trabalhar. Você também pode fazer coisas como essa =IF(LEN(A1)+LEN(B1)=0,"",A1+B1)
, que executará a fórmula se a célula tiver dados ou =IF(OR(LEN(A1)=0,LEN(B1)=0),"",A1+B1)
, que só executará a fórmula se ambas as células tiverem dados.
Para a maioria das fórmulas, estender isso para vários milhares de linhas adiciona apenas alguns KB ao tamanho do seu arquivo. Se você tem fórmulas muito longas, ou muitas delas, que você está arrastando para baixo, isso pode aumentar significativamente o tamanho do arquivo.