ho un problema con una macro, che in fase di realizzazione funzionava ma ora mettendola in esecuzione mi blocca excel.
inserendo in excel un centinanio di valori ed eseguendo la macro con il tasto f8 nell'editor vba, tutto funziona perfettamente.
se però inserisco moltissimi valori ed eseguo la macro, tramite pulsante, l'esecuzione procede regolarmente, ed ottengo risultati esatti, fino ad un certo numero di righe,
poi excel si blocca, compare un msgbox che dice:
"ERRORE RI RUN-TIME '-2147417848(80010108)'
METODO '_DEFAULT' DELL'OGGETTO 'RANGE' NON RIUSCITO
l'help (?) del msgbox mi apre una finestra nella quale si descrive questo errore:
"ERRORE DI AUTOMAZIONE (ERRORE 400)"
e si fa riferimento a: ON ERROR RESUME NEXT
il debug del msgbox evidenzia in giallo sempre la stessa riga di codice, che fino al momento del blocco ha funzionato perfettamente per le righe precedenti.
Cells(r1, 24) = Application.WorksheetFunction.Sum(Range("M" & r1 & ":V" & r1))
la linea di codice incriminata esegue una normale somma di numeri, per righe.
se continuo ad eseguire il codice col tasto f8 tutto procede regolarmente, e se poi clicco nell'editor il triangolino verde-esegui, l'esecuzione riprende normalmente.
mi pare di capire che in effetti non c'è un errore specifico, tipo sintassi che blocca l'esecuzione della macro.
se il problema è la mancaza di ON ERROR RESUME NEXT nel mio codice, in che punto devo inserirlo?
ho trovato in rete anche
ERR.CLEAR
ON ERROR GOTO 0
è necessario inserire anche queste linee?
vi mostro il codice, nel quale ho evidenziato la linea sulla quale si blocca excel
- Codice: Seleziona tutto
Sub CALCOLA()
Sheets("Foglio1").Select
URBini = Sheets("Foglio1").Range("B" & Rows.Count).End(xlUp).Row
Sheets("Foglio1").Range("B3:K" & URBini).ClearContents
Call IMPORTA_
Application.ScreenUpdating = False
Application.Calculation = xlCalculationAutomatic 'xlManual
Application.Cursor = xlWait
Call IMPORTA1
URB = Sheets("Foglio1").Range("B" & Rows.Count).End(xlUp).Row
StartArrB = Range("B3:K" & URB)
Call OPENFILE
URM = Sheets("Foglio1").Range("M" & Rows.Count).End(xlUp).Row
StartArrM = Range("M3:V" & URM)
For r = 3 To URB
-----------------
--------
For r1 = 3 To URM
Cells(r1, 24) = Application.WorksheetFunction.Sum(Range("M" & r1 & ":V" & r1)) '<<<<<<<<<
Next r1
------------
------------
Sheets("Foglio1").Select
Range("B3:K" & URB) = StartArrB
Next r
-------
-------
Next I
Range("A3").Select
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.Cursor = xlDefault
End Sub
ciao grazie