Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBS: Excel-Datei bearbeiten

VBS: Excel-Datei bearbeiten
23.05.2008 18:03:56
Nils
Hallo Hallo Hallo!
Also ich hab folgenden Auftrag: :)
Eine vbs schreiben, die in einer Exceldatei den Verknüpfungspfad abändert! (sonst unter Bearbeiten\Verknüpfungen manuell möglich)
Hab zum erstenmal eine VBS gebastelt und das ist das Ergebnis:
Dim xl
set xl = createobject("excel.application")
xl.workbooks.open("C:\test\2.xls")
xl.visible=true
xl.ActiveWorkbook.ChangeLink Name:="1.xls", NewName:="c:\test\3.xls", Type:=xlExcelLinks
xl.ActiveWindow.Close
xl.Application.Quit
set xl=nothing
Die Datei zu öffnen und zu schließen klappt eigentlich schonmal super. Aber sobald ich die Zeile:
xl.ActiveWorkbook.ChangeLink Name:="1.xls", NewName:="c:\test\3.xls", Type:=xlExcelLinks
mit aufnehme geht gar nichts mehr.
Ich hatte die Zeile als Makro in Excel mitgeschnitten. Also ist es wohl VBA - heißt das es kann in der VBS nicht funktionieren? Oder wo liegt mein Fehler?
(Tun sollte der Befehl folgendes: Datei 2.xls öffnen und den Pfad von 1.xls auf 3.xls abändern)
Als weiterführende Frage wäre dann noch: kann man ds ganze noch eleganter mit "GetObject" machen?
Ich danke Euch, mfg Nils

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBS: Excel-Datei bearbeiten
23.05.2008 18:35:00
Nepumuk
Hallo Nils,
1. Das Problem ist die Excelkonstante xlExcelLinks. Du musst deren numerischen Wert benutzen (1).
2. Das bringt nichts wenn du auf die Datei mit GetObject zugreifst, denn vor dem speichern muss du sie trotzdem einblenden. Ansonsten ist sie beim nächsten öffenen ausgeblendet und du muss sie über Fenster - Einblenden erst wieder sichtbar machen bevor du damit arbeiten kannst.
3. Du solltest auch mit einem Workbook - Objekt operieren und nicht das olle doofe ActiveWorkbook benutzen. Das ist allemal sauberer programmiert. So ungefähr (ungetestet)
Dim xl, wb
Set xl = CreateObject("excel.application")
Set wb = xl.Workbooks.Open("C:\test\2.xls")
xl.Visible = True
wb.ChangeLink Name:="1.xls", NewName:="c:\test\3.xls", Type:=1
wb.Close savechanges:=True
xl.Application.Quit
Set wb = Nothing
Set xl = Nothing

Gruß
Nepumuk

Anzeige
AW: VBS: Excel-Datei bearbeiten
26.05.2008 08:22:11
Nils
Hi Nepumuk,
danke für die schnelle Hilfe. Der Quellcode sieht ja schonmal richtig klasse aus, so wie ich mir das vorgestellt hatte... leider funktioniert er noch nicht. Ich hab schonmal ein wenig rumgestellt, fürchte nur das ich einfach in VBS noch nicht fit genug bin um das Problemchen zu erkennen... hm, tja also für eine Korrektur wäre ich sehr Dankbar, oder auch für einen Tip wie ich sehe was die VBS treibt, damit ich selbst am Problem arbeiten kann. Ach ja noch eine Ergänzungsfrage. Könnte ich den Pfad von der spezifischen datei 2.xls abändern auf alle xls in einem verzeichnis? so was wie *.xls...?
mfg Nils

Anzeige
AW: VBS: Excel-Datei bearbeiten
26.05.2008 08:37:00
Nepumuk
Hallo Nils,
um alle Dateien eines Ordners zu bearbeiten kannst du in VBS das FileSystem - Objekt benutzen.
Was funktioniert denn nicht? Ich will das ganze jetzt nicht nachbauen, da habe ich keine Zeit dafür.
Ich hab gerade noch einen Unsinn entdeckt. Das:
xl.Application.Quit
Kannst du natürlich so schreiben:
xl.Quit
Gruß
Nepumuk

AW: VBS: Excel-Datei bearbeiten
26.05.2008 08:50:00
Nils
Naja was nicht funktioniert sehe ich leider nicht. Ich kann die VBS nur über windows ausführen. Das Fenster popt auf und geht wieder zu... nix passiert. :( kann man das irgendwo nachvollziehen? (deine änderung verändert auch nichts...)
wie sähe das denn mit dem "FileSystem - Objekt" aus ?
lg Nils

Anzeige
AW: VBS: Excel-Datei bearbeiten
26.05.2008 08:56:00
Nepumuk
Hallo Nils,
zum FileSystem - Objekt schaust du mal in der VBA - Hilfe von Excel nach. Suche da nach "File Objekt". Da gibt's auch Beispiele dazu.
Das andere müsste ich erst mal testen, da hab ich aber wie geschrieben momentan keine Zeit.
Gruß
Nepumuk
P.S. Du solltest wenigsten ein bisschen VB / VBA beherrschen bevor du mit VBS anfängst.

AW: VBS: Excel-Datei bearbeiten
26.05.2008 09:05:00
Nils
Alles klar! Vielen lieben Dank erstmel für deine Hilfestellungen. Ich werd mich wohl erstmal mit den Grundlagen beschäftigen... Back to basics ;=) lg Nils

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige