Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[vba] val.non.disp in vba

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[vba] val.non.disp in vba

Postdi ramset64 » 26/09/10 18:49

Ciao a tutti,
questa istruzione può restituirmi un valore numerico oppure un errore (valore non disponibile): Application.WorksheetFunction.Index(Range("F_dat"), Application.WorksheetFunction.Match(Range("Ticker"), Range("Ticker_m"), 0))

non riesco in nessun modo ad usare una condizione su vba, mi spiego meglio
se io scrivo

if isna(Application.WorksheetFunction.Index(Range("F_dat"), Application.WorksheetFunction.Match(Range("Ticker"), Range("Ticker_m"), 0))) then X=1 else X=0

oppure

if Isnumber(Application.WorksheetFunction.Index(Range("F_dat"), Application.WorksheetFunction.Match(Range("Ticker"), Range("Ticker_m"), 0))) then x=1 else X=0

oppure

if Isnumeric(Application.WorksheetFunction.Index(Range("F_dat"), Application.WorksheetFunction.Match(Range("Ticker"), Range("Ticker_m"), 0))) then x=1 else X=0

ottengo sempre un errore quanto per l'appunto quella istruzione non restituisce un numero.... dove sbaglio?
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Sponsor
 

Re: [vba] val.non.disp in vba

Postdi pietrol » 27/09/10 00:04

Ciao ramset64

prova con IsError()
equivale alla funzione VAL.ERRORE()

ciao
pietrol
il lupo ululà, il castello ululì
pietrol
Utente Senior
 
Post: 270
Iscritto il: 07/01/09 14:34

Re: [vba] val.non.disp in vba

Postdi Anthony47 » 27/09/10 00:59

Humm... IsError()... non credo che funzionera'...
Questo perche' le WorkSheetFunction eseguite nel vba eventualmente non restituiscono un errore, ma "falliscono".

Ramset, non dici quale errore ti esce ma penso sia il 1004.
Ma non avendo poi detto se F_Dat e' una matrice o un elemento lineare non posso immaginare se l' errore deriva da Index usato irregolarmente (dipende dal tipo di intervallo che hai definito con F_Dat) o da Match (mancata corrispondenza del valore cercato nel range Ticker_m.

Devi comunque predisporre una gestione di errore tramite l' istruzione On Error Goto xxxx, oppure (da valutare e combinare con accortezza) con On Error Resume Next.

Se con questi spunti non risolvi posta ancora, col codice di errore e con la disgnosi se il problema e' l' uso errato di Index o la mancata corrispondenza su Match.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [vba] val.non.disp in vba

Postdi ramset64 » 27/09/10 08:10

Dunque io ho risolto cosi...
If Not IsError(Application.Index(Range("F_dat"), Application.Match(Range("Ticker"), Range("Ticker_m"), 0))) Then etc. etc.

ovvero ho elimnato WorksheetFunction e pare funzionare con isError, continua a non funzionare con IsNA... sembrerebbe un bug di vba.... Anthony il risultato di quella formula su excel funziona corretttamente ovvero restituisce un numero se trova il corrispondente valore cercato oppure non disponibile se non lo trova.
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [vba] val.non.disp in vba

Postdi Anthony47 » 27/09/10 09:09

Anthony il risultato di quella formula su excel funziona corretttamente ovvero restituisce un numero se trova il corrispondente valore cercato oppure non disponibile se non lo trova.
Ecco, in vba non restituiscono l' errore #N/D, ma "falliscono" con un errore di vba.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [vba] val.non.disp in vba

Postdi ramset64 » 27/09/10 10:43

Ok ho capito Anthony.... e per il fatto di aver dovuto eliminare WorksheetFunction dalla formula che mi dici? Qual è la motivazione? grazie ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [vba] val.non.disp in vba

Postdi Anthony47 » 28/09/10 02:55

Eh, secondo il referencebook Match e' un membro di WorksheetFunction, che e' una proprieta' dell' oggetto Application; se poi puo' essere usato direttamente come membro di Application non puo' che essere ...un bug; ma da quello che scrivi e' un bug buono.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[vba] val.non.disp in vba":


Chi c’è in linea

Visitano il forum: Anthony47 e 8 ospiti