2009-05-21 15 views
5

ho definito una funzione in VBA come segueQuando si tenta di utilizzare una funzione VBA che ho definito in un foglio di calcolo Excel, ottengo "Questa non è una funzione valida"

Public Function Distance(X, Y) as Double 

Poi in una cella Provo ad usare la funzione. Ho digitato "@Dis" e ottenuto il menu a discesa, selezionare la funzione e quindi immettere i parametri che terminano con @Distance (A1, A2) nella cella.

Quando si preme Invio, viene visualizzato l'errore "Quella funzione non è valida".

Ho abilitato i macro in tutto il sistema, ho provato a salvarlo come il vecchio formato e il formato di cartella di lavoro abilitato per la macro senza alcun risultato.

Cosa c'è di sbagliato nel mio utilizzo di questa funzione?

risposta

6

Provare a utilizzare:

=Distance(A1, A2) 

Invece di

@Distance(A1, A2) 

Non ho mai visto @ come il carattere corretto per chiamare una funzione in Excel.

Ho provato quanto segue in Excel, e funziona come un fascino:

In Module1:

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

In una cella:

=Distance(A1, A2) 

Quale prodotto ces il risultato:

come previsto.

+0

@ è stato utilizzato nelle formule nel foglio di calcolo Lotus 1-2-3 ... – ZEE

6

È inoltre necessario assicurarsi che il codice VBA per la propria funzione sia in un modulo e non nell'area di codice del foglio di lavoro.

3

Non utilizzare parole riservate come i nomi delle vostre funzioni. Ho provato un nome Parse() e lo ha respinto fino a quando l'ho rinominato ParseString().

+0

Questo era il mio caso, le altre risposte non hanno aiutato. – Taosique