Hallo,
Mit folgendem Code von "water" werden Zeilen von rohdaten.csv in ergebnis.csv verschoben:
Spoiler anzeigen
#include <Excel.au3>
$oExcel = _Excel_Open()
$oRohdaten = _Excel_BookOpen($oExcel, @ScriptDir & "\rohdaten.csv")
$oErgebnis = _Excel_BookOpen($oExcel, @ScriptDir & "\ergebnis.csv")
$iTargetColumn = $oErgebnis.ActiveSheet.Usedrange.Columns.Count + 1
$oTargetRange = $oErgebnis.ActiveSheet.Range("B" & $iTargetColumn)
_Excel_RangeCopyPaste($oRohdaten.Activesheet, "A8:L16", $oTargetRange)
_Excel_RangeDelete($oRohdaten.Activesheet, "A8:L16", $xlShiftUp)
Wenn die Spalte A statt 8 Zellen bspw. nur 5 Zellen enthalten, wie gehe ich dann vor?
- Wenn in "ergebnis.csv" nur 6 neue Zeilen beschrieben sind, brauche ich aus "rohdaten.csv" auch nur A8:L13. Wenn 3 Zeilen beschrieben sind, A8:L10.
Schritt 1:
Dann müsste ich in der "ergebnis.csv" wie bisher in Spalte B die letzte leere Zelle suchen:
$iTargetColumn = $oErgebnis.ActiveSheet.Usedrange.Columns.Count + 1
$oTargetRange = $oErgebnis.ActiveSheet.Range("B" & $iTargetColumn)
Schritt 2:
Danach in der "ergebnis.csv" in Spalte A die beschriebenen Zellen zählen und als Variable speichern.
$iTargetColumn = $oErgebnis.ActiveSheet.Usedrange.Columns.Count
$oTargetRange = $oErgebnis.ActiveSheet.Range("A" & $iTargetColumn)
Schritt 3:
Aus der Quelle, also "rohdaten.csv" genauso viele Zellen kopieren, wie hoch die Variable gezählt wurde.
_Excel_RangeCopyPaste($oRohdaten.Activesheet, "Variable?", $oTargetRange)
[/autoit]
Schritt 4:
Löschen mit Variable.
_Excel_RangeDelete($oRohdaten.Activesheet, "Variable", $xlShiftUp)
[/autoit]Wie lege ich diese Variable fest? Oder habe ich einen Denkfehler?
Schöne Grüße