Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Êxcel in vbs beenden

Êxcel in vbs beenden
21.09.2016 14:39:39
snewi133
Hallo, ich starte Excel über ein vbscript und möchte es auch gerne schliessen! Leider bekomme ich eine Fehler meldung bei objexcel.close!
Wie beende ich excel und dann eventuell noch den ganzen Task?

Dim objExcel
Dim objWorkbook
Set objexcel = CreateObject("excel.application")
objExcel.Visible = True
objExcel.DisplayAlerts = False
objExcel.Workbooks.Open("Ber.xlsm")
Set objExcel = Nothing
objExcel.Close
Danke und Gruss
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Êxcel in vbs beenden
21.09.2016 14:43:31
yummi
Hallo snewi
du setzt erst objExcel auf nothing (löscht somit die Variable und danach schliesst du sie. Das ist als wenn Du dir selber den Teppich unter den Füssen wegziehst!
Tausch mal bitte die Reihenfolge der beiden Zeilen.
Gruß
yummi
AW: Êxcel in vbs beenden
21.09.2016 14:47:57
snewi133
Ok, dann kommt die Meldung Object doesn't support this property or metod: 'Close'
Gruß
Anzeige
AW: Êxcel in vbs beenden
21.09.2016 14:50:05
yummi
Hallo snewi,
dann weiß doch mal deienr Variablen den Typ Objekt zu.
Gruß
yummi
AW: Êxcel in vbs beenden
21.09.2016 14:54:16
snewi133
das mache ich wie? Dim objExcel as object? geht nicht!!
AW: Êxcel in vbs beenden
21.09.2016 15:06:37
Dieter(Drummer)
Hallo Snewi,
evtl. hilft dir dieser Code von Nepumuk (Herber Forum) weiter un/oder du passt ihn auf deine Belange an:
'Herber: von Nepumuk am 10.05.2016 16:34:15
Sub ExcelEnde()
Dim objWorkbook As Workbook
If MsgBox("Excel schliessen OHNE Änderung?", vbYesNo, "Info") = vbYes Then
For Each objWorkbook In Application.Workbooks
objWorkbook.Saved = True
Next
Application.Quit
End If
End Sub

Gruß, Dieter(Drummer)
Anzeige
AW: Êxcel in vbs beenden
21.09.2016 15:04:52
ChrisL
Hi
Liegt hier nicht eine Verwechslung zwischen Close und Quit vor?
ActiveWorkbook.Close
Application.Quit
Zwei Beiträge weiter unten, zwar für ppt aber müsste im Prinzip gleich funktionieren:
https://www.herber.de/forum/messages/1515610.html
cu
Chris
Anzeige
AW: Êxcel in vbs beenden
21.09.2016 15:41:15
snewi133
Super genau das war es Chris!! Das einzige es kommt noch die Meldung wegen speichern und workbooks.save kennt er nicht!

Dim objExcel
Set objexcel = CreateObject("excel.application")
With objexcel
.Visible = True
.DisplayAlerts = False
.Workbooks.Open("Ber.xlsm")
.Workbooks.Close
.Workbooks.Save
.Quit
End With
Set objExcel = Nothing

Anzeige
AW: Êxcel in vbs beenden
21.09.2016 15:45:05
ChrisL
Hi
.Workbooks.Open("Ber.xlsm")
.ActiveWorkbook.Save
.ActiveWorkbook.Close
cu
Chris
AW: Êxcel in vbs beenden
21.09.2016 15:49:38
snewi133
Super Geil Danke läuft!!
;
Anzeige
Anzeige

Infobox / Tutorial

Excel über VBS beenden: Ein praktischer Leitfaden


Schritt-für-Schritt-Anleitung

Um Excel über ein VBScript zu beenden, folge diesen Schritten:

  1. Excel-Objekt erstellen: Erstelle eine Instanz von Excel in deinem VBScript.

    Dim objExcel
    Set objExcel = CreateObject("Excel.Application")
  2. Arbeitsmappe öffnen: Öffne die gewünschte Arbeitsmappe.

    objExcel.Workbooks.Open("Ber.xlsm")
  3. Änderungen speichern: Speichere die Änderungen an der Arbeitsmappe, bevor du Excel schließt.

    objExcel.ActiveWorkbook.Save
  4. Arbeitsmappe schließen: Schließe die Arbeitsmappe.

    objExcel.ActiveWorkbook.Close
  5. Excel beenden: Beende die Excel-Anwendung.

    objExcel.Quit
  6. Objekt freigeben: Setze das Objekt auf Nothing, um den Speicher freizugeben.

    Set objExcel = Nothing

Häufige Fehler und Lösungen

  • Fehler: "Object doesn't support this property or method: 'Close'"

    • Lösung: Stelle sicher, dass du das Excel-Objekt nicht auf Nothing setzt, bevor du Close aufrufst. Die Reihenfolge der Befehle ist entscheidend.
  • Fehler: "Workbooks.Save kennt er nicht"

    • Lösung: Verwende .ActiveWorkbook.Save, um die aktive Arbeitsmappe zu speichern, bevor du sie schließt.

Alternative Methoden

Du kannst auch die Application.Quit Methode verwenden, um Excel zu beenden, anstatt jede Arbeitsmappe einzeln zu schließen. Hier ist ein Beispiel:

If MsgBox("Excel schliessen OHNE Änderung?", vbYesNo, "Info") = vbYes Then
    Application.Quit
End If

Diese Methode fragt den Benutzer, ob er Excel ohne Speichern schließen möchte.


Praktische Beispiele

Hier ist ein vollständiges Beispiel, das zeigt, wie du Excel mit VBScript beenden kannst:

Dim objExcel
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.DisplayAlerts = False
objExcel.Workbooks.Open("Ber.xlsm")

objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.Close
objExcel.Quit
Set objExcel = Nothing

Dieses Skript öffnet die Excel-Datei, speichert die Änderungen und schließt dann Excel.


Tipps für Profis

  • Verwende On Error Resume Next, um Fehler beim Ausführen des Scripts zu ignorieren, und füge eine Fehlerbehandlung hinzu, um Probleme effizient zu erfassen und zu lösen.
  • Nutze With-Anweisungen, um den Code zu verkürzen und die Lesbarkeit zu erhöhen:
    With objExcel
      .Visible = True
      .DisplayAlerts = False
      .Workbooks.Open("Ber.xlsm")
      .ActiveWorkbook.Save
      .ActiveWorkbook.Close
      .Quit
    End With

FAQ: Häufige Fragen

1. Wie kann ich Excel ohne Benutzerinteraktion schließen? Du kannst die Application.Quit Methode verwenden, um Excel im Hintergrund zu schließen, ohne eine Benutzereingabe zu verlangen.

2. Was ist der Unterschied zwischen Close und Quit? Close schließt eine spezifische Arbeitsmappe, während Quit die gesamte Excel-Anwendung beendet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige