|
| Autor |
Nachricht |
Valle Newbie

Anmeldedatum: 05.05.2011 Beiträge: 7
|
Form Reload oder Speicherbereinigung?
Verfasst am: 16.05.2011, 13:40 |
|
|
Hallo zusammen,
ich habe folgendes Problem:
Ich habe ein Programm in VB geschrieben, dass mir Exceltabellen auf gewisse Fehler hin überprüft und mir diese dann in der Exceldatei farbig macht. Funktioniert soweit alles gut, ABER:
Wenn ich eine neue Exceldatei öffnen will, bekomme ich bei folgendem Code einen Fehler:
[code]
Set oExl = CreateObject("Excel.Application")
oExl.Visible = True
oExl.Workbooks.Open xlfile
lastrow = getlastrow(oExl)
lastcolumn = oExl.ActiveWorkbook.ActiveSheet.Cells(1, Columns.count).End(xlToLeft).Column
[/code]
bei columns.count kracht es. Schließe ich mein Programm und öffne es neu, geht es einwandfrei!
Vermute also, dass ich Excel nicht richtig beendet habe oder irgendwo in meinem Speicher noch etwas rumschwirrt, das mir hier den Fehler verursacht. Schließen tue ich Excel wie folgt:
[code]
oExl.ActiveWorkbook.Close savechanges:=true
oExl.Quit
[/code]
Habe schon gschlagene 3Stunden nichts anderes gemacht, als hier und bei google zu suchen und komme einfach nicht weiter.
Wenn ich jetzt das Form neu laden könnte, dass es ist wie bei ersten Start, ginge es vielleicht schon->Problem ich finde keine ösung für das Reload in der sich mein Programm nicht beendet. Das Form ist auch nicht mein Start-Form, sondern ich muss mich nach dem Programmstart wieder lästig hier hin hangeln.
Also mir momentan Denkbare Lösung ist ein
Form-Reload
ODER
eine Speicherbereinigung in der alle Variablen neu initialisiert werden.
Vielleicht hatte ja jemand das selbe Problem, oder niemand hat das Problem, weil alle außer mir wissen, wie das geht ;-)
Solltet ihr mehr Code brauchen, sagt mir das...alles an Code würde den Rahmen sprengen, aber ich weiß nicht, was noch relevant sein könnte.
Programmiere jetzt seit 3 Wochen mit VB6...sollte es trivial sein, seht es mir bitte nach!
Vielen Dank schonmal im vorraus
Florian |
|
| |
|
 |
Valle Newbie

Anmeldedatum: 05.05.2011 Beiträge: 7
|
Verfasst am: 17.05.2011, 14:05 |
|
|
Meine Vermutung, dass ich das Excelobjekt nicht richtig schließe/loslasse scheint sich jetzt bestätigt zu haben:
Ich habe die prüfroutine laufen lassen und dann eine neue Spalte ganz hinten hizugefügt, in die ich die Fehler aufgelistet habe, die pro Zeile gefunden wurden (habe den Fehlertypen eine ID gegeben). Beim ersten Aufruf funktioniert alles bestens, öffne ich dann eine neue Datei, such mein Programm in dieser auch nach Fehlern und arbeitet richtig, wenn ich jetzt aber die Spalte hinzu fügen will, schreibt er mir diese in die alte Datei und nicht in die, die er aktuell ausgelesen und geprüft hat...wie lässt mein VB die Exceldatei wieder los?? Zumal sie im idealfall auch noch geöffnet bleiben sollte....warum gibt es kein Form.reload das alles auf anfang setzt? |
|
| |
|
 |
Valle Newbie

Anmeldedatum: 05.05.2011 Beiträge: 7
|
Verfasst am: 21.06.2011, 09:20 |
|
|
Sorry für die späte Meldung!
Habe EWIG gesucht und jetzt den Haken endlich gefunden...ich habe überall Excelobjekt.workbook geschrieben...und irgendwo hatte ich mal ein with....endwith drin und dann raus genommen. Jetzt habe ich aber bei einer anweisung das excelobjekt. vergessen davor zu schreiben... :shock:
es geht also alles...ein Glück...bis zum nächsten Problem ;-)
Und nicht zu vergessen: Vielen Dank für die Hilfe!! |
|
| |
|
 |
|
|