Moin,
Entschuldigung für das 2. Thema gleich hinterher,
undzwar habe ich mal eine frage: Ist es möglich (wenn ja wie) zu ermitteln wieviel Zeilen verhonden sind und wieviel spalten jede Zeile hat? Danach soll eine 2D Array daraus erstellt werden. ( das mit der array weiß ich schon, wie das geht nur halt nicht mit dem ermitteln in der udf steht dazu auch leider nix
).
Hoffe mir kann wer helfen.
gruß René
Excel zeilen und spaltn ermitteln...
-
- [ offen ]
-
Kangtar -
29. Januar 2010 um 13:21 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
Wenn Du die Exceldatei mit _ExcelReadSheetToArray einliest, bekommst Du ein 2D-Array, indem [0][0] die Zeilenanzahl und [0][1] die Spaltenanzahl beinhalten.
-
Das wieß ich auch aber dann muss ich immer festlegen wieviel spalten ich habe und wieviel zeilen. Ich möchte das er die vorhanden Zeilen und die jeweiligen spalten ermittelt und dann daraus eine array erstellt.
gruß Kangtar -
Hi,
hatte selbiges Problem und das so gelöst.
[autoit]
Ist aus meinen Skript musst du noch anpassen; ####### Hier wird ermittelt wie viele Spalten es sind und diese dann gelöscht ########
[/autoit]
Dim $Spaltenanzahl, $oExcel
$Spaltenanzahl = $oExcel.ActiveSheet.Cells(10, $oExcel.Columns.Count).End( -4159).Column
;MsgBox(0, "Spaltenanzahl", $Spaltenanzahl); nur zur kontrolle
_ExcelColumnDelete($oExcel, $Spaltenanzahl, 100)
;ENDE Spalten löschenHoffe mal das Hilft dir erst einmal weiter.
mfg
oh-ha -
sorry hatte ich noch den zweiten Teil vergessen die Zeilen.
Ist auch direkt aus meinen Skript.
[autoit];####### Nun wird alles am Ende abegschnitten #######
[/autoit]
Dim $lZeile, $lZeile2
$lZeile = $oExcel.ActiveSheet.Cells($oExcel.Rows.Count, 1).End(-4162).Row
$lZeile2 = $oExcel.Cells($oExcel.Rows.Count, 1).SpecialCells(11).Row
$oExcel.Range("A" & $lZeile +2, "AZ" & $lZeile2).Select
$oExcel.Selection.Delete.Shift= -4162 ;xlUp = -4162
;MsgBox(0, "Zeilenanzahl", $lZeile); nur zur kontrolle
;ENDE alles am Ende abschneidenmfg
oh-ha -
- Offizieller Beitrag
Um die Anzahl der Zeilen/Spalten zu ermitteln gibt es
.UsedRange.Rows/Columns.CountHier mal im Bsp.:
Spoiler anzeigen
[autoit]; === Excel Objekt erstellen
[/autoit] [autoit][/autoit] [autoit]
Local $oBook = ObjCreate("Excel.Application")
With $oBook
.SheetsInNewWorkbook = 1
.Visible = 1
.WorkBooks.Add
.ActiveWorkbook.Sheets(1).Select ()
EndWith; === Zellen füllen (A1 bis I21)
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To 8
For $j = 0 To 20
$oBook.Range("A1").Offset($i, $j).Value = StringFormat('%3d', Random(1, 999, 1))
Next
Next; === letzte Zeile
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite('Anzahl Zeilen: ' & $oBook.Worksheets(1).UsedRange.Rows.Count & @CRLF); === letzte Spalte
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite('Anzahl Spalten: ' & $oBook.Worksheets(1).UsedRange.Columns.Count & @CRLF); === Excel Objekt beenden ohne speichern
[/autoit]
$oBook.DisplayAlerts = False
$oBook.Application.Quit