Eu tenho um modelo do Excel onde o elemento principal é uma única tabela estruturada grande que contém aproximadamente 2000 colunas e 200 linhas. Cada coluna contém uma fórmula que é a mesma para cada linha. Como um arquivo XLSB, a pasta de trabalho é de cerca de 11MB e leva 45 segundos para abrir. As próprias fórmulas são eficientes - um cálculo completo da pasta de trabalho é feito em menos de um segundo.
Se eu dividir esse modelo em dois, usando duas planilhas separadas na mesma pasta de trabalho (com referências entre elas), o desempenho não será alterado. Mas, quando divido essas folhas em duas pastas de trabalho, com os links como referências externas, posso abrir os arquivos e atualizar os links em aproximadamente 10 segundos.
Por que separar pastas de trabalho melhoram o desempenho? O mesmo desempenho pode ser alcançado em uma única pasta de trabalho?
EDIT: Pastas de trabalho higienizadas podem ser encontradas aqui: link Model1.xlsb e Model2.xlsb são os arquivos divididos. Para criar Model1and2.xlsb, tudo que fiz foi mover as duas folhas do Model2 para o Model1.
EDIT 2: a configuração de Workbook.ForceFullCalculation=TRUE
soluciona esse problema. Definitivamente tem algo a ver com o tempo para carregar a árvore de dependências. Eu adicionei Model1and2-ForceFullCalculation.xlsb à pasta compartilhada para demonstrar.