04-15-2009 05:30 AM
Guten Tag.
Ich möchte Daten aus meherern Kanälen in eine Excel Datei exportieren. Diese liegt bereits vor und ist mit diversen Diagrammen etc. bestück, weshalb ich die Vorlage gerne beibehalten möchte. Ich habe mich an das OLE-Beispiel für den Export gehalten und das alles recht gut funktioniert. Das Problem ist das der Export aufgrund der hohen Kanallänge recht lange dauert, da ja jede Zelle einzeln kopiert wird.
Meine Frage ist ob es mäglich ist eine ganze Spalte auf einmal zu kopieren.
Ich verwende Diadem 10.0 und Excel 2000.
Grüße
Christian
Solved! Go to Solution.
04-15-2009 10:07 AM
Hallo Christan,
Ich kann dir nicht direkt helfen, aber ich kann dir vielleicht Hoffnung geben. Persoenlich habe ich immer Zelle pro Zelle Werte an Excel durch ActiveX ueberreicht, aber ich habe Excel Methoden gesehen, womit man einen Zellenblock definieren kann und dann ein Arrayvariable dem Zellenblock zuweisen kann. Das sollte von DIAdem aus gehen, aber ich weiss nicht wie diese Methoden lauten.
Brad Turpin
DIAdem Product Support Engineer
National Instruments
04-15-2009 11:21 AM
Sorry my German isn't good enough to respond in German, but could you maybe select data in Diadem using DataBlClpCopy() and then past in Excel using Range.Select and ActiveSheet.Paste?
I'm not too familiar with OLE communication but I'm guessing this should work.
HTH,
Marcel
04-16-2009 07:13 AM
It works!!
Thanks a lot.
Here is my code.
Set ExcelSheet = Excel.Workbooks(Vorlage).Sheets("Daten_2_A")
Spalte = 1
For Spalte = 1 To GlobUsedChn
ExcelSheet.Activate
Laenge = ChnLength(Spalte)
Call DataBlClpCopy(Spalte, 1, Laenge)
With ExcelSheet
.Range(.Cells(2, Spalte), .Cells(Laenge+1, Spalte)).Select
End With
ExcelSheet.Paste
Next
04-16-2009 07:28 AM
Good to hear it works and thank you for posting the code as well. I'm sure this will come in handy in the future.
B/r
Marcel