Comment puis-je obtenir la valeur de la cellule à partir d'une formule dans Excel en utilisant VBA?

J'ai une formule dans une plage de cellules dans une feuille de calcul qui évaluent à des valeurs numériques. Comment puis-je obtenir les valeurs numériques en VBA à partir d'une gamme passés dans une fonction?

Disons que les 10 premières lignes d'Une colonne dans une feuille de calcul contiennent rand() et je suis de passage que comme un argument de ma fonction...

public Function X(data as Range) as double

    for c in data.Cells
        c.Value    'This is always Empty
        c.Value2   'This is always Empty
        c.Formula  'This contains RAND()
    next

end Function

J'ai appeler la fonction à partir d'une cellule...

=X(a1:a10)

Comment puis-je obtenir à la valeur de la cellule, par exemple 0.62933645?

Excel 2003, VB6

J'ai fait quelques rapides du code VBA et j'obtiens la valeur de l'cellules Rand (), pas de problèmes. Peut-être poster plus de code pour voir ce qui se passe?
Richard, il n'y a plus de code, c'est ça... Tout ce que je veux faire est d'obtenir les valeurs des cellules et ils sont tous "Vide"
Veuillez également expliquer les conditions dans lesquelles vous utilisez la fonction d'. En particulier, les cellules sur la même feuille et est quelque chose d'actif au moment de l'utilisation, comme une boîte de dialogue ou certaines fonction Excel (certaine Gamme de méthodes ne fonctionnent tout simplement pas dans Excel, dans certaines situations).
Ouverture de la ligne de boucle For incorrect - devrait être: Pour Chaque c dans les données.Les cellules suppose que cela est une faute de frappe que le programme ne compile pas avec le Chaque manquant
Ne pourrait-il pas être "pour chacun"?

OriginalL'auteur Simon | 2009-05-23