| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
| KISTERS 3DViewStation: Germar Nikol - Der Visionär hinter der Erfolgsgeschichte, eine Pressemitteilung
|
Autor
|
Thema: Mit VBScript in Excel schreiben (6420 mal gelesen)
|
Eule Mitglied CAD-Berater
Beiträge: 34 Registriert: 11.12.2002 Catia V5 R18 ServicePack 3
|
erstellt am: 25. Jan. 2011 17:23 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich versuche einen Wert aus CATIA in eine vorhandene Excel-Datei hineinzuschreiben. Jedoch bringt mir CATIA eine Fehlermeldung "unbekannter Laufzeitfehler" bei der Zeile Excel.Sheets("Ergebniswerte")... "Ergebniswerte" ist der Name des Sheet 1 der Excel-Datei, welches ich so umbenannt habe. Das kurze Script habe ich angefügt. Über Anregungen wäre ich dankbar. Bin nicht fündig geworden im Netz. Gruß, Eule Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12014 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 25. Jan. 2011 18:04 <-- editieren / zitieren --> Unities abgeben: Nur für Eule
Servus Fehlt da nicht die Angabe des Workbook? zB Code: Set oWorkbook = Excel.Workbooks.Open "C:\Test.xls" oWorkbook.sheets.item("Ergebniswerte").Range("A1").Value=Zminus
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Eule Mitglied CAD-Berater
Beiträge: 34 Registriert: 11.12.2002 Catia V5 R18 ServicePack 3
|
erstellt am: 26. Jan. 2011 11:20 <-- editieren / zitieren --> Unities abgeben:
|
ptit.tom Mitglied CAD-Berater
Beiträge: 115 Registriert: 11.02.2005 win10, CATIA R19 bis R30
|
erstellt am: 26. Jan. 2011 11:33 <-- editieren / zitieren --> Unities abgeben: Nur für Eule
Hallo, Du (bzw. bgrittmann) hast die Klammern () für die Methode Open vergessen:
Code:
Set oWorkbook = Excel.Workbooks.Open("C:\Test.xls")
[Diese Nachricht wurde von ptit.tom am 26. Jan. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12014 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 26. Jan. 2011 12:25 <-- editieren / zitieren --> Unities abgeben: Nur für Eule
|
Eule Mitglied CAD-Berater
Beiträge: 34 Registriert: 11.12.2002 Catia V5 R18 ServicePack 3
|
erstellt am: 27. Jan. 2011 14:16 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, nach dem Einfügen der Klammern funktioniert der open Befehl, aber das ursprüngliche Problem ist geblieben. Ich kann nichts nach Excel schreiben, weil das Script mit der Meldung "unbekannter Laufzeitfehler" jetzt bei der Zeile oWorkbook.sheets.item("Ergebniswerte")... abbricht. Gruß, Eule Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12014 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 27. Jan. 2011 14:36 <-- editieren / zitieren --> Unities abgeben: Nur für Eule
Servus Dieser Code: Code: Sub test()Dim oExcel As Excel.Application Set oExcel = CreateObject("Excel.Application") Dim oWorkbook As Workbook Set oWorkbook = oExcel.Workbooks.Open("I:\test.xls") oWorkbook.Sheets.Item(1).Range("A1") = 15 oWorkbook.Save oWorkbook.Close Set oExcel = Nothing End Sub
läuft bei mir durch. ich hoffe dass hilft weiter.Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Eule Mitglied CAD-Berater
Beiträge: 34 Registriert: 11.12.2002 Catia V5 R18 ServicePack 3
|
erstellt am: 27. Jan. 2011 17:23 <-- editieren / zitieren --> Unities abgeben:
Servus Bernd, dieser Code läuft auch bei mir durch, wenn ich im VBScript eine Zahl als Wert hineinschreibe (z.B.: oWorkbook.Sheets.Item("Ergebniswerte").Range("A2") = 15. Sobald ich aber statt einer Zahl eine Variable schreibe, bricht das Script mit der Fehlermeldung ab. Ich habe mal die 3 zusammengehörigen Testdateien (das CATPart, die Designtable und die Excel-Datei, in die geschrieben werden soll) als Zip angefügt. Der Aufbau ist so: Wenn der Anwender eine andere Configuration aus der Designtable, welche das CATPart benutzt, auswählt, dann soll eine Reaction starten (die Reaction überwacht die Veränderung der Configuration). Die Reaction wiederum startet ein VBScript, welches im Strukturbaum abgelegt ist. An das VBScript übergibt die Reaction Parameter aus dem Parameterset "Realwerte". Diese Parameter sollen nach Excel in eine vordefinierte Excel-Datei "Ergebnis" geschrieben werden. Jedoch mag die Anweisung [oWorkbook.Sheets.Item("Ergebniswerte").Range("A2") = Fall] den Parameter "Fall" nicht (der ein Realwert ist). Die Zellen, in der Excel-Tabelle, in die geschrieben werden soll, habe ich als "Zahl" formatiert. Die gleiche Fehlermeldung mit Scriptabbruch kommt jedoch auch, wenn ich den Parameter "Fall" einfach nur in einer MessageBox ausgeben will. Gruß, Eule Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12014 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 27. Jan. 2011 17:47 <-- editieren / zitieren --> Unities abgeben: Nur für Eule
Servus Was übergibst du dem Script an Variablen? Liegt es vielleicht am Typ? Übergibst du einen Parameter (könnte dann ggf mit Zminus.Value gehen) oder einen String (ggf klappt es dann mit cStr(Zminus) ) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Eule Mitglied CAD-Berater
Beiträge: 34 Registriert: 11.12.2002 Catia V5 R18 ServicePack 3
|
erstellt am: 27. Jan. 2011 18:10 <-- editieren / zitieren --> Unities abgeben:
|