Hallo,
ich stehe wieder mal auf dem Schlauch....die Fehlermeldung:
Laufzeitfehler 462
Der Remote-Server -Computer existiert nicht oder ist nicht verfügbar
erscheint wenn ich eine Function zweimal hintereinander laufen lasse. Es muss wohl daran liegen, dass ich etwas von Excel nicht richtig beende bzw. schließe. Aber was mache ich hier falsch????
Dim xlApp As Excel.application
Dim xlwrkbk As Excel.Workbook
Dim xlsheet As Excel.Worksheet
xlApp.application.Quit
xlApp.Quit
Set xlApp = Nothing
Set xlwrkbk = Nothing
Set xlsheet = Nothing
Der Code beinhaltet den Anfang und das Ende der Function.
Bin dankbar für jeden Tipp
Anbei der
Hallo,
und wo werden die Excel-Objekte denn nachvollziehbar definiert/initialisiert?
Hallo,
ich bin jetzt leider kein Access-Experte, aber so steuer ich z.B. mein Excel an:
Set xlApp = New Excel.application
xlApp.Visible = True
Set xlsheet = xlApp.application.ActiveWorkbook.Sheets(1)
Hallo,
ok, mit "New" wird eine neue Instanz generiert.
Halte beim "Zerstören" der Objekte (...= Nothing) die umgekehrte Reihenfolge ein wie bei der Erzeugung der Objekte benutzt und schliesse explizit das Sheet (xlsheet.Close) .. Vielleicht hilft das hier ja.
Hallo,
erstmal vielen Dank für den Tipp!
Die Funktion kann ich jetzt x-mal durchlaufen lassen ohne Fehler. Sobald ich aber in ein anderes Modul wechsel und Excel ansteuere kommt wieder dieser Fehler. Wieso gibt es keinen Befehl der alles killt ??? Mist!
Hallo,
nur noch eine Frage, wenn ich doch mit einem Kill Befehl Excel beende und es im Taskmanager unter Prozesse nicht mehr zu sehen ist, wie kann da noch etwas quer hängen ???
hey probier ihn mal auszublenden, vielleicht funktioniert es ja dann
On Error GoTo fehlerbehandlung
hier steht dann dein VBA Code
fehlerbehandlung:
MsgBox Err.Description, vbCritical, "Fehler"
Hallo,
eine Fehlerbehandlung bringt in diesem Fall wohl eher nichts...
ZitatSobald ich aber in ein anderes Modul wechsel und Excel ansteuere kommt wieder dieser Fehler
Was heißt das?
ZitatWieso gibt es keinen Befehl der alles killt Mist!
Da wird an der falschen Stelle gerödelt... Der Excel-Task doll nicht durdh den Taskmanager gekillt werden, die Excel-Instanz soll SAUBER durch den Code aus dem Arbeitsspeicher entfernt werden.
Hallo,
Error goto brachte die gleiche Fehlermeldung.
Seltsam finde ich, das ich die erste Function jetzt x mal durchlaufen lassen kann und bei der nächsten Function er stecken bleibt (oder ich beende Access, dann läuft die zweite Function wieder). Und durch den Kill müssten doch alle Instanzen weg sein ???
Jedenfalls bleibt der hier hängen:
Set xlapp = New excel.application
xlapp.Visible = True
strfilename = "c:\test\reports\test.xls"
Set xlwrkbk = xlapp.Workbooks.Open(strfilename)
Set xlsheet = xlapp.application.ActiveWorkbook.Sheets("act_year")
xlwrkbk.Sheets("act_year").Select
' Get actual day
xlsheet.Select
xlsheet.Range("G5").Select
'Range("G5").Select
MyDay = 1
' Do Until Mid(ActiveCell.Value, 3, 1) <> "."
Do Until ActiveCell.Value = ""
genau bei do until activcell.value = ""
Hallo,
---> xlwrkbk.ActiveCell.Value
Hallo,
dann kommt leider die Fehlermeldung: Objekt unterstützt diese Eigenschaft oder Methode nicht
Hallo
kleiner Tip am Rande: im VBA Editor F2 gedrückt und nach ActiveCell suchen. Ergebniss: Ist ein Property von Application oder Windows.
--> xlapp.ActiveCell
Auch solltest du dinge wie ActiveCell etc nie ohne parent - object verwenden, weil dann die entsprechenden Programminstanzen ggf nicht beendet werden.
So wirklich schlau werd ich deinem Code jetzt auch nicht ( Mit Excel hab ich es nicht so, und ist lange her) , Select ist aber evtl nicht nötig
Set xlapp = New excel.application
xlapp.Visible = True
strfilename = "c:\test\reports\test.xls"
Set xlwrkbk = xlapp.Workbooks.Open(strfilename)
Set xlsheet = xlwrkbk.Sheets("act_year")
' Get actual day
....
Hallo daolix,
das war die Lösung....xlapp fehlte.
Vielen Dank für deinen Tipp & Hilfe!