Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Per VBScript Excel Datei öffnen/aktualisieren...

Forumthread: Per VBScript Excel Datei öffnen/aktualisieren...

Per VBScript Excel Datei öffnen/aktualisieren...
01.03.2003 12:42:35
Ralf
Hallo Forum,

wie muß ein VBScript (nicht Excel VBA!) aussehen, das
(1) eine Excel-Datei öffnet "Quelle.xls",
(2) die Bezüge aktualisiert (sollte automatisch ohne Nachfrage an den User passieren),
(3) ein Calculate (F9) Ereignis auslöst,
(4) das Tabellenblatt "Test" komplett kopiert,
(5) "Test" in eine neue bis dahin nicht vorhandene Excel-Datei "Ziel.xls" einfügt (komplettes Blatt + danach mit Inhalte/Werte einfügen einen Frozen-Stand erzeugt),
(6) Quelle.xls speichert und
(7) Quelle.xls schließt?
Das ganze betrifft insg. 15 Dateien und sollte in einer Schleife ablaufen.

Leider komme ich nicht weiter als (und auch das ist geklaut):

Dim objXL
Dim objWkb
Dim objWks
Set objXL = WScript.CreateObject("Excel.Application")
objXL.Workbooks.open "C:\Quelle.xls"
Set objWks = objXL.Workbooks("Quelle.xls").Worksheets("Test")
objWks.Parent.Close
Set objWkb = objXL.Workbooks.Add
Set objWks = objWkb.Worksheets("Test")

Vielen Dank für Eure Hilfe

Ralf


Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Per VBScript Excel Datei öffnen/aktualisieren...
01.03.2003 14:57:43
andre

hallo ralf,
das sieht doch ziemlich gut aus.
bei mir (nicht von mir) so:
Set oExcel = CreateObject("Excel.Application")
oExcel.visible = true
Set oWbk = oExcel.Workbooks.Open (fname, false, true)
oExcel.Run "Auto_Open" 'hier besser workbook_open

was du dann mit den sheets machst sollte in ein workbook_open-makro. am besten in die personl.xlt, die automatisch beim xls-start mit hoch kommt. sonst muss der code in jede mappe.
gruss andre

Anzeige
Re: Per VBScript Excel Datei öffnen/aktualisieren...
02.03.2003 17:20:42
Ralf

Hallo Andre,

danke, hat mir bedingt ein bischen weitergeholfen.
Allerdings habe ich jetzt in Bezug auf diesen Script neue Probleme mit den Add-Ins von Excel.
Dafür gibt es aber einen neuen Fall von heute.

Gruß Ralf

;
Anzeige

Infobox / Tutorial

Excel-Datei mit VBScript öffnen und aktualisieren


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei mit VBScript zu öffnen und zu aktualisieren, kannst du folgendes Skript verwenden. Dieses Skript erfüllt die Anforderungen von Ralf und kann leicht angepasst werden:

Dim objXL
Dim objWkb
Dim objWks
Set objXL = CreateObject("Excel.Application")
objXL.Visible = False

' Excel-Datei öffnen
Set objWkb = objXL.Workbooks.Open("C:\Quelle.xls")

' Bezüge aktualisieren
objWkb.RefreshAll

' Berechnung auslösen
objXL.Calculate

' Kopiere das Tabellenblatt "Test"
Set objWks = objWkb.Worksheets("Test")
objWks.Copy

' Füge das Blatt in eine neue Datei ein
Set newWkb = objXL.Workbooks.Add
Set newWks = newWkb.Worksheets(1)
newWks.PasteSpecial Paste:=xlPasteValues ' Werte einfügen

' Speichere die neue Datei
newWkb.SaveAs "C:\Ziel.xls"

' Quelle.xls speichern und schließen
objWkb.Save
objWkb.Close

' Excel beenden
objXL.Quit
Set objXL = Nothing

Dieses Skript öffnet die Datei "Quelle.xls", aktualisiert die Bezüge, kopiert das Tabellenblatt "Test" und speichert es in "Ziel.xls". Achte darauf, die Pfade zu den Dateien entsprechend anzupassen.


Häufige Fehler und Lösungen

  1. Fehler: Excel-Datei kann nicht gefunden werden.

    • Überprüfe den Pfad zur Datei. Stelle sicher, dass die Datei tatsächlich existiert und der Pfad korrekt ist.
  2. Fehler: Excel-Objekt kann nicht erstellt werden.

    • Stelle sicher, dass Microsoft Excel korrekt installiert ist und keine anderen Instanzen von Excel im Hintergrund laufen.
  3. Fehler: Kopieren des Blattes schlägt fehl.

    • Überprüfe, ob das Tabellenblatt "Test" existiert. Achte darauf, dass es keinen Schreibschutz gibt.

Alternative Methoden

Wenn du die Automatisierung mit VBScript nicht nutzen möchtest, kannst du auch Excel VBA verwenden. VBA bietet eine noch tiefere Integration in Excel und ermöglicht dir, Makros direkt innerhalb von Excel zu erstellen und auszuführen. Hier ist ein einfaches Beispiel für ein VBA-Makro:

Sub ÖffneUndAktualisiere()
    Dim wbQuelle As Workbook
    Dim wbZiel As Workbook

    Set wbQuelle = Workbooks.Open("C:\Quelle.xls")
    wbQuelle.RefreshAll
    wbQuelle.Calculate

    wbQuelle.Worksheets("Test").Copy
    Set wbZiel = Workbooks.Add
    wbZiel.Worksheets(1).PasteSpecial Paste:=xlPasteValues
    wbZiel.SaveAs "C:\Ziel.xls"

    wbQuelle.Save
    wbQuelle.Close
End Sub

Praktische Beispiele

Angenommen, du hast mehrere Excel-Dateien, die du regelmäßig aktualisieren und speichern möchtest. Du kannst eine Schleife in deinem VBScript verwenden, um diese Aufgabe zu automatisieren. Hier ein Beispiel:

Dim objXL
Set objXL = CreateObject("Excel.Application")
objXL.Visible = False

Dim arrDateien
arrDateien = Array("C:\Quelle1.xls", "C:\Quelle2.xls", "C:\Quelle3.xls")

For Each datei In arrDateien
    Dim objWkb
    Set objWkb = objXL.Workbooks.Open(datei)
    objWkb.RefreshAll
    objXL.Calculate
    objWkb.Save
    objWkb.Close
Next

objXL.Quit
Set objXL = Nothing

Mit dieser Methode kannst du mehrere Dateien in einer Schleife verarbeiten, was Zeit spart und Fehler vermeidet.


Tipps für Profis

  • Fehlerbehandlung einbauen: Füge Fehlerbehandlungsroutinen in dein VBScript ein, um sicherzustellen, dass der Code bei einem Fehler nicht einfach abbricht.

  • Log-Datei erstellen: Protokolliere die Aktionen des Scripts in einer Log-Datei, um den Überblick über die bearbeiteten Dateien zu behalten.

  • Zugriffsberechtigungen beachten: Achte darauf, dass du die erforderlichen Berechtigungen für den Zugriff auf die Excel-Dateien hast, insbesondere wenn du das Skript auf einem Server ausführst.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass das VBScript nur auf bestimmte Excel-Versionen funktioniert? Du kannst die Version von Excel überprüfen, indem du objXL.Version abfragst und sicherstellst, dass diese mit der gewünschten Version übereinstimmt.

2. Kann ich mehrere Tabellenblätter auf einmal kopieren? Ja, du kannst eine Schleife verwenden, um durch die gewünschten Tabellenblätter zu iterieren und jedes Blatt nacheinander zu kopieren.

3. Ist es möglich, das Skript so zu ändern, dass es auch andere Dateiformate unterstützt? Ja, du kannst die Dateiformate anpassen, indem du die entsprechenden Methoden zum Öffnen und Speichern der Dateien verwendest, solange die unterstützten Formate von Excel unterstützt werden.

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