Errore Runtime 91

di il
1 risposte

Errore Runtime 91

Ciao a tutti,

Da access sto eseguendo un codice che mi apre un file di excel e mi aggiunge una macro al file che poi viene eseguito, infine la macro termina.

Se faccio questa operazione una volta tutto bene

Se provo fare la stessa operazione una seconda volta ottengo "Errore Runtime 91", ma utilizzando il tasto "stop" nel progetto vb torna a funzionare.

E' come se non svuotasse la memoria e non capisco come faglielo fare, il codice che uso è:


Dim Finestra As FileDialog
Dim Valore, vrtSelectedItem
Dim pathFileName As String

Dim oXL As Excel.Application
Dim oBook As Excel.Workbook
Dim oSheet As Excel.Worksheet

Set Finestra = Application.FileDialog(msoFileDialogOpen) 'Equivale a 1

'Titolo
Finestra.Title = "Apri File Distinta"

'Filtri di Ricerca
Finestra.Filters.Clear
Finestra.Filters.Add "Excel", "*.xls; *.xlsm; *.xlsx", 1

'Selezione Multipla
Finestra.AllowMultiSelect = False

'Apri Finestra
Valore = Finestra.Show

'Determinare pulsante premuto
'se si preme ok
If Valore = -1 Then
pathFileName = Trim(Finestra.SelectedItems.Item(1))
Shell ("rundll32.exe url.dll,FileProtocolHandler " & pathFileName)
Set oXL = Excel.Application 'CreateObject("Excel.Application")
oXL.Visible = True
'importa nel file selezionato un progetto VBA
oXL.VBE.ActiveVBProject.VBComponents.Import "C:\Temp\Prepara_distinta.bas"
'esegue un comando del progetto VBA importato
oXL.Run "Aggiungi_colonna_padre", oSheet
oXL.Run "salva", oSheet
'messaggio tutto ok
MsgBox "File Importato", vbMsgBoxSetForeground

oXL.UserControl = True

Set oXL = Nothing
Set Finestra = Nothing


'se si preme annulla
ElseIf Valore = 0 Then
    'lbl1.Caption = "Premuto Annulla"
     
End If

Idee su come risolvere il problema?

1 Risposte

  • Re: Errore Runtime 91

    Vado a memoria:

    Al posto di
    Set oXL = Excel.Application
    scrivi
    Set oXL = New Excel.Application
    poi una volta finito devi chiudere Excel, prima di annientarne l'istanza:
    oXL.Quit
    Set oXL = Nothing
    ti consiglio comunque di dare un'occhiata (vedi mia firma) al mio articolo (e progetto) che sicuramente troverai interessanti:
    Early-Late Binding con Excel

Devi accedere o registrarti per scrivere nel forum
1 risposte