[VBS] Frage zu Excel Daten aktualisieren per Script

Muhkuh42

Grünschnabel
Hallo,

habe soeben das ganze Forum und Internet durchsucht, aber irgendwie komme ich nicht auf einen grünen Zweig. Ich möchte mehrere Excel-Dateien in einem Verzeichnis öffnen lassen, sie aktualisieren (wie z.B. durch klick auf JA beim starten einer Excel-Datei oder per F9), speichern und schließen. Das meiste was ich bisher lesen konnte war mir fast zu hoch für den Anfang, aber hier mal mein erster Ansatz:

Set Excel = CreateObject("Excel.Application")
Set WB = Excel.Workbooks.Open("C:\1.xls")
WB.Save
WB.Close
Set WB = Nothing
Excel.Quit

Mir fehlt quasi mittendrin der Aufruf zum aktualisieren und wahrscheinlich muss ich da eine Schleife drumbauen, richtig ? Bitte Euch um eine einfache Erklärung ;-)
 
Zuletzt bearbeitet:
Du hast es doch schon :D

der zweite Parameter bei

Set WB = Excel.Workbooks.Open("C:\1.xls",true)

nennt sich updatelinks ist dieser gesetzt so werden beim öffnen die Verknüpfungen aktualisiert

Grüsse bb
 
Hi, vielen Dank schonmal für die Antwort - war ja wirklich nicht so viel falsch, was ich da fabriziert habe, aber schon taucht das nächste Problem auf - ich will mehrere Dateien eines Ordners aktualisieren hab das bisher mal so gemacht:
Code:
Set Excel = CreateObject("Excel.Application")
text2 = "Aktualisierung abgeschlossen!"
path = "C:\"
name = "Team"
extension = ".xls"
For i = 1 to 5
no = cstr(i)
Set WB = Excel.Workbooks.Open(path & name & no & extension,true)
WB.Save
WB.Close
Set WB = Nothing
next
WScript.Echo text2
Excel.Quit

Jetzt habe ich aber ja das Problem, daß ich jeden Dateinamen genau wissen muss, was schwierig ist, da diese sich regelmäßig ändern - gibt es keine Möglichkeit eine Wildcard einzubauen, so dass ich alle Dateien des Ordners öffnen kann? (z.B. c:\Team*.xls) ?

Kann mir da jemand zur Seite stehen ? Gefunden habe ich da nix, weil die meisten sich wohl eher mit vba befassen.
 
Mach es doch wie in den VBA scripten :D

Visual Basic:
    Set fso = CreateObject("Scripting.FilesystemObject")
    
    Set fld = fso.GetFolder("u:\Produktion")
    
    For Each fil In fld.Files
        If Left(fil.ShortName, 4) = "Team" And Right(fil.ShortName, 4) = ".xls" Then
            'Excel aktualisieren
            Set WB = Excel.Workbooks.Open(fil.path,true)
            ' speichern
            WB.Save
            WB.Close
            Set WB = Nothing
        End If
    Next fil

in fil.shortname steht der 8 Zeichenname drin der in deinem Beispiel ausreichend ist und in fil.path steht der komplette Dateiname incl. Pfad drin

Grüsse bb
 
Warum machst Du nicht eine File-Listbox auf, der Du die Extension und den Pfadnamen übergibst?

Da kannst Du dann ganz einfach durchschleifen wie durch jede Listbox.

Code:
Private Sub Form_Load ()
      File1.Path = "C:\Temp"
      File1.Pattern = "*.xls"
END SUB

Private Sub Command1_Click()
      Dim i as integer
      Dim dateiname as string

      For i = 0 to File1.ListCount -1
           File1.Listindex = i
           Dateiname = File1.FileName
           'hier machst Du nun was
     Next
End Sub


Viele Grüsse
ronaldh
 

Neue Beiträge

Zurück