Valor incorreto ao contar células em diferentes versões do Excel

Eu vi alguns usuários SO encontrarem um problema ao tentar usar alguma variação deCells.Count; o código do VBA lança um erro de estouro em alguns casos.

Para referência, veja comentários sobreesta resposta:

Eu acho que isso vai funcionar, mas eu recebo um erro "estouro" e ele me aponta para o código "Se Master.Cells.SpecialCells (xlCellTypeVisible) .Count> 0 Then" --- parece que não está filtrando nada em particular - user1556069

eesta resposta:

Isso é onyl funcionando (e Cells.Count não funcionou) porque o último usou um inteiro, 16 bits, valor máximo de 65.536 e toda a planilha retornou um numbr maior? - fast_code

Eu estou supondo que em algum lugar nos bastidores VBA está tentando forçar a contagem de células para um inteiro pequeno (16 bits) ou inteiro longo (32 bits). A contagem de células de uma planilha do Excel 2007 transbordaria esses tipos de dados. Infelizmente, não posso isolá-lo agora porque não tenho uma cópia do Excel 2007 à mão e não posso realmente reproduzir o seu erro. - mwolfe02

Tentando entender isso, tentei me reproduzir e recebi um estouro ao tentar atribuirCells.Count como um inteiro. Isso faz sentido, pois o valor é muito grande para o tipo de dados Integer.

Usando o código abaixo no Excel 2003 e 2010, recebi um resultado numérico ao tentar atribuir como Longo ou Variante.

Option Explicit

Sub testInteger()
    Dim i As Integer
    i = Cells.Count 'Overflow
    Debug.Print i 'Doesn't get this far...
End Sub

Sub testLong()
    Dim l As Long
    l = Cells.Count
    Debug.Print l 'Prints 16777216 in both versions
End Sub

Sub testVariant()
    Dim v As Variant
    v = Cells.Count
    Debug.Print v 'Prints 16777216 in both versions
End Sub

Como você pode ver nos meus comentários, oCells.Count valor é16777216 (o que é correto para 2003), mas é o mesmopara ambas as versõese isso não faz sentido para mim. Citarmwolfe02 de uma das respostas acima relacionadas:

As planilhas do Excel 2007 têm 1.048.576 linhas e 16.384 colunas para um total de 17179869184 células.

O que me diz que o valor impresso em 2010 deve ser pelo menos (eu acredito que deveria ser o mesmo)17,179,869,184.

Então, por que esse número não é impresso corretamente / por que o valor de 2003 retornou em 2010?

questionAnswers(1)

yourAnswerToTheQuestion