VB und Excel

  • Excel

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Kr0e.

    VB und Excel

    Hallo,

    muss bei der Arbeit ein Tool programmieren, das bereits existierende und verlinkte Exceltabellen umkopieren kann und dabei die Linkpfade anpasst. Also ich habe z.B. einen Order in dem sind ganz viele Unterordner und in jedem Unterordner sind Exceltabellen die irgendwie alle miteinander verknüpft sind. Das Tool soll nun den Oberordner in dem alle Files und Unterordner sind an eine andere Stelle kopieren und dabei natürlich die Links von den Exceltabellen untereinander anpassen.

    Ich weiß, dass das mit VBS geht. Aber ich möchte das nicht als Makro, sondern als "Stand-alone" Applikation haben.

    1. Habt ihr Tipps oder Anregungen für die Lösung des Problems ?
    2. Wie kann man VBS funktionen in einem ganz normalen VB Programm nutzen.

    Ich benutze die Visual Basic 2010 Express Edition, da ich eigentlcih kein Basicprogrammierer bin.

    Ich wirklich dankbar für Tipps und Anregungen.

    Gruß,

    Chris
    Hi.

    Du kannst das komplette Excel-Ojektmodell (welches sowohl in Excel-VBA als auch in VBS über CreateObject(Excel.Application) zur Verfügung steht) in VB.NET verwenden, indem du einen Verweis auf die entsprechende PIA (Primary Interop Assembly) hinzufügst. Das geht über die Projekteigenschaften auf der Registerkarte "Verweise" oder über das Kontextmenü im Projektmappen-Explorer. Der Verweis ist unter "COM" (Registerkarte) zu finden und lautet "Microsoft Excel XX.X Object Library", wobei XX.X für eine Versionsnummer, abhängig von der verwendeten Office-Version, steht. Falls die entsprechenden PIAs nicht installiert sind, musst du das nachholen. Den entsprechenden Download gibts bei Microsoft - achte dabei aber auf die korrekte Office-Version.

    Wenn du bereits ein passendes VB(A)-Script / -Makro hast, kannst du dieses nun in VB.NET als standalone-Applikation umschreiben.

    PS: An die c't-Hotline wurde schonmal eine ähnliche Frage gestellt. Dort wurde das Problem einfach mit Suchen&Ersetzen gelöst. Hier der Link zum Beitrag: heise.de/ct/hotline/Serverpfad…ngen-aendern-1021096.html
    Gruß
    hal2000
    Hallo!

    Danke erstmal für die Tipps. Hab soweit alles eingerichtet und läuft gut.

    Eine spezielle Frage noch:

    Ich will die Formel einer Zelle mit Cell.Formula = xyz ändern. Das klappt gut, aber bei meiner Aufgabe gibt es dann noch ein kleines Problem:

    Immer wenn ich den Link aktualisiere, zb in einer Zelle die Formel ='C:\[test.xls]Mappe1'!A1 mit der ='D:\[test.xls]Mappe1'!A1 tausche, öffnet sich direkt ein OpenFileDialog der nach einer Eingabe verlangt. Kann ich das umgehen ? Bis auf das, wäre ich fertig bereits :) Es macht ja auch nicht wirklich Sinn! Ich habe ja einen neuen Link eingegeben, aber anscheinend will Excel das überprüfen... Kann ich das irgendwie ausschalten ?

    Danke schonmal!

    Gruß,

    Chris