Excel VBA: variantes em variáveis de matriz

Uma pergunta sobre variantes. Estou ciente de que as variantes no Excel vba são do tipo de dados padrão e também ineficientes (do ponto de vista do uso excessivo em aplicativos grandes). No entanto, eu os uso regularmente para armazenar dados em matrizes que possuem vários tipos de dados. Um projeto atual em que estou trabalhando é essencialmente uma tarefa que exige otimização maciça de código muito ruim (c.7000 linhas) - e isso me fez pensar; existe uma maneira de contornar isso?

Explicar; o código freqüentemente armazena dados em variáveis de matriz. Portanto, considere um conjunto de dados de 10 colunas por 10000. As colunas são vários tipos de dados diferentes (sequência, duplo, números inteiros, datas, etc.). Supondo que eu queira armazená-los em uma matriz, eu normalmente;

dim myDataSet(10,10000) as variant

Mas, meu conhecimento diz que isso será realmente ineficiente com o código que avalia cada item para determinar que tipo de dados é (quando na prática eu sei o que estou esperando). Além disso, perco o controle que o dimensionamento de tipos de dados individuais me dá. Então, (supondo que as 6 primeiras sejam seqüências de caracteres, as próximas 4 dobras para facilitar a explicação do ponto), eu poderia;

dim myDSstrings(6,10000) as string
dim myDSdoubles(4,10000) as double

Isso me devolve o controle e a eficiência - mas também é um pouco desajeitado (na prática, os tipos são misturados e diferentes - e eu acabo tendo um número ímpar de elementos em cada um deles, e acabo tendo que atribuí-los individualmente no código em vez de em massa). Então, é um caso de;

myDSstrings(1,r) = cells(r,1)
myDSdoubles(2,r) = cells(r,2)
myDSstrings(2,r) = cells(r,3)
myDSstrings(3,r) = cells(r,4)
myDSdoubles(3,r) = cells(r,5)
..etc...

O que é muito mais feio do que;

myDataSet(c,r) = cells(r,c)

Então- me fez pensar - devo estar faltando alguma coisa aqui. Qual é a maneira ideal para armazenar uma matriz de diferentes tipos de dados? Ou, supondo que não haja maneira de fazer isso - qual seria a melhor prática de codificação para armazenar uma matriz de tipos de dados mistos?

questionAnswers(2)

yourAnswerToTheQuestion