Hallo zusammen,
Ich hab was rausgefunden.
Vielleicht brauchts ja jemand.
Für die direkte Kommunikation mit Excel ist folgendes hier im Forum zu finden (nur mal das woraufs ankommt)
;Initialisieren
(setq excel (vlax-get-object "Excel.Application"))
(setq excelworkbook (vlax-get-property excel "Activeworkbook"))
(setq excelsheet (vlax-get-property excelworkbook "Activesheet"))
Und jetzt gleich zum Problem:
Wenn ich das hier verwende um den verwendeten Bereich auszulesen
(vlax-variant-value
(vlax-get-property
(vlax-get-property excelsheet "UsedRange")
"VALUE"
)
)
funzt das einwandfrei wenn im Excel in mehr als einer Zelle etwas drinsteht.
Aber wenn NUR EINE ZELLE einen Inhalt hat (ich schreib mal eine Überschrift in A1) dann bekomme ich kein Safearray (das ich auswerten kann) sondern einen String mit dem Zelleninhalt.
Und zwar egal wo diese Zelle ist.
Und wenn ich dann das Safearray auswerten will, bekomme ich eine Fehlermeldung.
Also wenn ich in H50 was reinschreibe bekomme ich den Inhalt von H50 geliefert, aber weis nichts über den verwendeten Bereich.
Wenn ich aber, je nach dem was ich brauche, folgendes auslese, klappt das.
Ich hab jedenfalls noch keinen Fall gehabt bei dem es nicht ging.
(setq startzeile
(vlax-get-property
(vlax-get-property
(vlax-get-property excelsheet "UsedRange")
"ROWS"
)
"Row"
)
)
(setq zeilen (vlax-get-property
(vlax-get-property
(vlax-get-property excelsheet "UsedRange")
"ROWS"
)
"COUNT"
)
)
(setq startspalte
(vlax-get-property
(vlax-get-property
(vlax-get-property excelsheet "UsedRange")
"Columns"
)
"COLUMN"
)
)
(setq spalten (vlax-get-property
(vlax-get-property
(vlax-get-property excelsheet "UsedRange")
"Columns"
)
"COUNT"
)
)
Aus den Werten kann man dann berechnen was man braucht.
Viel Spass damit.
------------------
Geht nicht, gibts nicht
Gruß
Andreas
http://kraus-cad.de
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP