Hallo,
seit vielen Stunden versuche ich die Excel UDF der Autoit v3.3.12.0 produktiv zu verwenden. Folgende Aufgabe:
- es sollen eine Reihe von Spalten mit jeweils fester Länge
- von einem Workbook in ein anderes kopiert werden
- dabei können die Inhalte der Spalten jeweils Werte, Text, Datumsangaben oder Mischungen derselben enthalten
Die Grundstruktur des Code ist hier dargestellt:
- in einer FOR-Schleife werden ca. 10 vordefinierten Zellnamen durchgegangen
- zunächst werden die Koordinaten der entsprechenden Zellbereiche ermittelt
- und die Zellen per _Excel_RangeRead() in einer Arrayvariable zwischengespeichert
- dann erfolgt das Aufspüren der jeweiligen Zielzellen im anderen Workbook
- und das Hineinschreiben der zwischengespeicherten Arrayvariable per _Excel_RangeWrite()
Es ergibt sich folgendes Problem: Die Zellen in meinem Quell-Workbook enthalten nicht nur Zahlen ("Values"), sondern auch manchmal mehrzeiligen Text oder Datums-Werte. Wenn ich also bei _Excel_RangeRead() den Parameter "iReturn" mit [1=values] wähle, läuft die Kopiererei so lange durch, bis beim Lesen per _Excel_RangeRead() eben dieser mehrzeilige Zelleninhalt erkannt wird und folgende Fehlermeldung erscheint:
"Error: The requested action with this object has failed"
Der Fehler bezieht sich dabei auf Zeile 732 in der "Excel.au3" der oben erwähnten Version. Dort scheint ein Transpose nicht zu funktionieren.
In einem weiteren Schritt versuchte ich, die reinen Textkomponenten der Zellen auszulesen. In der Hoffnung, dass die Werte auf diese Weise als Text mit berücksichtigt werden. Wenn ich aber _Excel_RangeRead() mit dem Parameter "iReturn" = [3=the displayed text] aufrufe, bleiben ALLE Zellen nach dem Kopieren in das andere Workbook LEER.
Weiter versuchte ich, zunächst per <range>.NumberFormat = "@" eine Umwandlung der Values (und Texte) in Texte zu bewirken und dann mit "iReturn" = [3] zu kopieren, aber auch dann bleiben die Zielzellen komplett leer.
Hat jemand eine Idee, wo möglicherweise mein Denkfehler liegt?
Danke.