2009-05-21 5 views
5

I défini une fonction VBA comme suitLorsque je tente d'utiliser une fonction VBA que je l'ai défini dans une feuille de calcul Excel, je reçois « Ce n'est pas une fonction valide »

Public Function Distance(X, Y) as Double 

Puis dans une cellule J'essaie d'utiliser la fonction. Je tape "@Dis" et j'obtiens le menu déroulant, sélectionne la fonction puis entre les paramètres qui finissent avec @Distance (A1, A2) dans la cellule.

Lorsque j'appuie sur Entrée, j'obtiens l'erreur "Cette fonction n'est pas valide".

J'ai activé les macros dans tout le système, j'ai essayé de l'enregistrer en tant que l'ancien format et en tant que format de classeur activé par macro en vain.

Quel est le problème avec mon utilisation de cette fonction?

Répondre

6

Essayez d'utiliser:

=Distance(A1, A2) 

Au lieu de

@Distance(A1, A2) 

Je ne l'ai jamais vu @ que le caractère correct d'appeler une fonction dans Excel.

J'ai essayé ce qui suit dans Excel, et il fonctionne comme un charme:

Module1:

Public Function Distance(X as Double, Y as Double) as Double 
    Distance = 10 
End Function 

Dans une cellule:

=Distance(A1, A2) 

Quel produ bureaux le résultat:

comme prévu.

+0

@ a été utilisé dans les formules dans le tableur Lotus 1-2-3 ... – ZEE

6

Vous devrez également vous assurer que le code VBA de votre fonction se trouve dans un Module et non dans la zone de code de la feuille de travail.

3

Ne pas utiliser des mots réservés comme les noms de vos fonctions. J'ai essayé un nom Parse() et il l'a renvoyé jusqu'à ce que je l'ai renommé ParseString().

+0

C'était mon cas, les autres réponses n'ont pas aidé. – Taosique

Questions connexes