
Eu tenho um modelo Excel onde o elemento principal é uma única e grande tabela estruturada que contém aproximadamente 2.000 colunas e 200 linhas. Cada coluna contém uma fórmula igual para cada linha. Como um arquivo XLSB, a pasta de trabalho tem cerca de 11 MB 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 1 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 muda. Mas, quando divido essas planilhas em duas pastas de trabalho, com os links como referências externas, posso abrir os dois arquivos e atualizar os links em cerca de 10 segundos.
Por que pastas de trabalho separadas melhorariam o desempenho? O mesmo desempenho pode ser alcançado em uma única pasta de trabalho?
EDIT: Pastas de trabalho higienizadas podem ser encontradas aqui:https://drive.google.com/drive/folders/0Bz0YVEO1u0jOaGtpS1ZnR3kzRWc?usp=sharing Model1.xlsb e Model2.xlsb são os arquivos divididos. Para criar Model1and2.xlsb, tudo que fiz foi mover as duas planilhas do Model2 para o Model1.
EDIT 2: A configuração Workbook.ForceFullCalculation=TRUE
resolve esse problema. Definitivamente tem algo a ver com o tempo para carregar a árvore de dependências. Adicionei Model1and2-ForceFullCalculation.xlsb à pasta compartilhada para demonstrar.