Hallo Scripter,
aus einer FileMaker-Datenbank kopiere ich mir per Skript verschiedene Datenblöcke in eine Liste (export) und die dazugehörigen Namen, unter denen diese Blöcke abgespeichert werden sollen (fileName).
Zunächst ist es mir gelungen, diese Blöcke (vor dem Einsetzen jeweils in eine Variable "curData" zwischengespeichert) in Tex-Edit-Dokumente zu kopieren und wunschgemäß unter den entsprechenden Namen zu sichern.
Da diese Dateien aber in Excel (MacOS 9.2.2, Microsoft Office 98) weiterbearbeitet werden, habe ich versucht, die Datenblöcke statt in Tex-Edit gleich in Excel abzuspeichern. Leider hatte ich keine Musterskripts für Excel und außer "paste" habe ich nichts gefunden, wie ich Daten aus einer AS-Variablen in eine Excel-Tabelle bekommen kann. Da "paste" aber nur Daten aus dem Zwischenspeicher einsetzt, musste ich den Inhalt der Variablen in den Zwischenspeicher laden.
Dies ist zwar nicht das Original-Skript, aber die wesentlichen Elemente sind drin, und der Fehler tritt hier auch auf:
-----
on run
set export to {"H", "R", "M", "Z"} -- Dummy-Inhalte
set fileName to {"Ha", "eR", "eM", "Zet"} -- Dummy-Dateinamen
global export
global fileName
set speicherPfad to "MacintoshHD2tArbeiten:Eigene Scripts:FM:"
repeat with i from 1 to length of export
set curData to item i of my export
set the clipboard to curData --> An error of type -619 has occurred. (Bad thread protocol)
set curName to item i of my fileName
tell application "Microsoft Excel"
Activate
Create New Workbook
Paste
AutoFit Column "A:C"
Save ActiveWorkbook In speicherPfad & curName & ".xls" As xlNormal Password "" WriteReservedPassword "" without ReadOnlyRecommended and CreateBackup
Close ActiveWindow
end tell
end repeat
end run
-----
Dieser Weg funktionierte auch prima bei der ersten Excel-Datei. Beim Versuch, das zweite item der Liste in den Zwischenspeicher zu laden, kam jedoch die Fehlermeldung "An error of type -619 has occurred." In meinem FileMaker-Kochbuch steht dazu: "Bad thread protocol". Wers versteht.
Nun verstehe ich weder den Fehler, noch seine Ursache.
Aber vielleicht muss ich ja auch gar nicht über den Zwischenspeicher gehen?
Wer weiß das?
Apropos Excel? Gibts dazu irgendwo Beispiel-/Syntax-Skripts? Wie entfernt man z.B. leere Spalten, sagen wir im Bereich der Spalten A bis EY?
Weil, dann hätte meinen manuellen Aufwand vom Vorjahr auf schätzungsweise unter 5% eingedampft.