AIUTO! "Run time error 9: subscript out of range"

di il
2 risposte

AIUTO! "Run time error 9: subscript out of range"

Ciao ragazzi, sono nuovissimo del forum ed ho urgente bisogno del vostro aiuto; provo a spiegarvi il mio problema:

1) ho la necessità di fissare dinamicamente (ogni time frame prescelto) le quotazioni azionarie che si aggiornano automaticamente su foglio excel tramite DDE (un sistema che consente di scaricare su excel automaticamente le quotazioni stesse);
2) vista la mia totale ignoranza in tematiche di programmazione, ho trovato un file già impostato in rete che però ogni tanto mi da l'errore riportato nel titolo: "Run time error 9: subscript out of range"
3) azionando il debug mi da questa cosa illegibile (per me, spero non per voi!) mostrando evidenziata in giallo la riga che io vi posto in bold e sottolineata:

On Error Resume Next
Cells(1, 1) = "STOP Timer"
FERMA = True
Application.OnTime DateAdd("n", INTERVALLO, Now), "RoutineOnTime", , False
End Sub

Public Sub RoutineOnTime() 'da eseguirsi ad ogni "INTERVALLO"
Dim R As Long, v As Double
If FERMA Then Exit Sub
With Sheets("input dde") ' si DEVE specificare il foglio su cui agire
'incrementa il numero di dati/riga
R = Val(.Range("Ndati").Value) + 1
.Range("Ndati").Value = R
R = R + 16
'------- copia i dati ---------------
.Cells(R, 2) = .Cells(6, 4) 'High
.Cells(R, 3) = .Cells(6, 5) 'Low
.Cells(R, 4) = .Cells(6, 6) 'Prezzo
.Cells(R, 5) = .Cells(6, 3) 'Open
.Cells(R, 6) = Now
.Cells(R, 7) = Now
'--------------- re-imposta la temporizzazione:
.Cells(1, 1) = "Prossima rilevazione: " & DateAdd("n", INTERVALLO, Now)
End With
If INTERVALLO > 0 Then Application.OnTime DateAdd("n", INTERVALLO, Now), "RoutineOnTime"
End Sub

Qualcuno riesce a dirmi come risolvere questo problema, o eventualmente a dirmi come fare per crearmi un file che risponda alle mie esigenze ex-novo (in quest'ultimo caso, vi prego, considerate la mia totale ignoranza informatica!!!)?

grazie mille a chi vorrà aiutarmi
ciao

2 Risposte

  • Re: AIUTO! "Run time error 9: subscript out of range"

    Ciao Monterino,
    sono quiei casi difficili da dare una soluzione al volo.
    L'errore vuol dire che stai tentando di leggere/scrivere ad un indice di una variabile fuori dal range, cioè se hai una matrice m di 5 elementi, vorresti leggere il 6° elemento.
    Prova ad impostare un punto di interruzione all'inizio ed esegui il programma in modalità di debug, step-by-step almeno per individuare quale è la variabile.
  • Re: AIUTO! "Run time error 9: subscript out of range"

    Una cosa che ho notato è che non hai messo un END IF corrispondente agli if inseriti...prova anche a vedere come hai dichiarato tutte le variabili....una volta mi dava lo stesso problema solo perche avevo dichiarato una variabile come INTEGER e inserivo con l'input una stringa.
Devi accedere o registrarti per scrivere nel forum
2 risposte