Microsoft Excel

Herbers Excel/VBA-Archiv

VBS: Excel-Datei bearbeiten

Betrifft: VBS: Excel-Datei bearbeiten von: Nils
Geschrieben am: 23.05.2008 18:03:56

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

  

Betrifft: AW: VBS: Excel-Datei bearbeiten von: Nepumuk
Geschrieben am: 23.05.2008 18:35:11

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


  

Betrifft: AW: VBS: Excel-Datei bearbeiten von: Nils
Geschrieben am: 26.05.2008 08:22:11

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


  

Betrifft: AW: VBS: Excel-Datei bearbeiten von: Nepumuk
Geschrieben am: 26.05.2008 08:37:35

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


  

Betrifft: AW: VBS: Excel-Datei bearbeiten von: Nils
Geschrieben am: 26.05.2008 08:50:35

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


  

Betrifft: AW: VBS: Excel-Datei bearbeiten von: Nepumuk
Geschrieben am: 26.05.2008 08:56:43

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.


  

Betrifft: AW: VBS: Excel-Datei bearbeiten von: Nils
Geschrieben am: 26.05.2008 09:05:06

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


 

Beiträge aus den Excel-Beispielen zum Thema "VBS: Excel-Datei bearbeiten"