Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo,

ich bearbeite von VB aus eine Excel-Datei (lesen und schreiben).

Mit Hilfe eines Buttons soll ein VB Formular UND das im Hintergrund (nicht sichtbare) Excel geschlossen werden.

Im Taskmanager sehe ich den Prozess trotz diesen Codes immernoch:

Public Sub EClose()

Excel.ActiveWorkbook.Save

Excel.Quit

Set Excel = Nothing

End Sub

Wieso wird der Prozess nicht geschlossen????

Was kann ich machen???

Gruß

  • Autor

Hab ich mal ausprobiert an den Boxen liegt es nicht.

VB "killt" den Prozess erst, wenn ich meine VB Anwendung auch geschlossen habe...

Das ist dumm, denn wenn ich eine weitere Excel-Datei während es Programmablaufes einlesen will, überschreibt er meine Dateien gegenseitig...:rolleyes:

  • Autor

Alles probiert...

Aber jetzt bekomme ich keine Fehlermeldungen mehr.

Für alle die das Problem auch haben:

Wenn ihr mit Excel arbeitet, nehmt das Excel-Objekt als Verweis auf Excel und kreiert nicht eigene Objekte!

Große Fehlerquelle (Excel wurde X-mal geöffnet, etc...)!!!

Nachdem ich die eigenen Objekte entfernt hatte, ist zwar der Prozess noch da, aber mehere geöffnete Excel Dateien blockieren oder überschreiben sich nicht gegenseitig!

In diversen Foren habe ich noch Alternative Vorschläge gesehen, die laut Aussage von anderen Usern mit zig API-Funktionen arbeiten. Ferner braucht man dazu eine Task ID, um den Task abschiessen zu können. Und um die ID zu bekommen, bedarf es einer weiteren Programmierung....

Ist also viel zu kompliziert!!!

Güße

Gany

also bei mir funktioert es ohne Problem das ich Excel als Object benutzte.

Ich hab zum schliessen diesen Code

objExcel.ActiveWorkbook.SaveAs strFilePath, 11 ' xlDBF4 = 11

'** Keine Meldung beim Schließen anzeigen

objExcel.ActiveWindow.Close

'** objExcel schließen

objExcel.Quit

Set objExcel = Nothing

gruß

guido

  • Autor

Genau diesen Code hatte ich auch... Funktionierte nicht.

Der Code war absolut korrekt. Es scheint ein internes VB-Windows Problem zu sein.

Es liegt wohl anscheinend an der Windows Version, Service Pack u.ä....

Hi habe ein sehr ähnliches Prog geschrieben. ... Excel öffnen, bearbeiten, speichern, schließen, ...

Set MyExcel = CreateObject("Excel.Application")

'late bindung, um Probleme mit den Dll's zu verhindern

Dim MyWB As Object

Set MyWB = MyExcel.Workbooks.Open(mFilename, True)

'mFilename is der Filename (wäre jetzt keiner drauf gekommen, oder)

'BEARBEITUNG DER DATEI !!

MyWB.close (True)

Set MyWB = Nothing

MyExcel.Quit

Set MyExcel = Nothing

Ich hatte das Prob auch, kann daran liegen, dass man den set ... = Nothing nicht durchläuft.

Matze

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.