Excel zeilen und spaltn ermitteln...

  • 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é

  • 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.
    Ist aus meinen Skript musst du noch anpassen

    [autoit]

    ; ####### Hier wird ermittelt wie viele Spalten es sind und diese dann gelöscht ########
    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öschen

    [/autoit]

    Hoffe mal das Hilft dir erst einmal weiter.


    mfg
    oh-ha

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

  • sorry hatte ich noch den zweiten Teil vergessen die Zeilen.

    Ist auch direkt aus meinen Skript.

    [autoit]

    ;####### Nun wird alles am Ende abegschnitten #######
    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 abschneiden

    [/autoit]


    mfg
    oh-ha

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

    • Offizieller Beitrag

    Um die Anzahl der Zeilen/Spalten zu ermitteln gibt es
    .UsedRange.Rows/Columns.Count

    Hier mal im Bsp.:

    Spoiler anzeigen
    [autoit]

    ; === Excel Objekt erstellen
    Local $oBook = ObjCreate("Excel.Application")
    With $oBook
    .SheetsInNewWorkbook = 1
    .Visible = 1
    .WorkBooks.Add
    .ActiveWorkbook.Sheets(1).Select ()
    EndWith

    [/autoit] [autoit][/autoit] [autoit]

    ; === Zellen füllen (A1 bis I21)
    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

    [/autoit] [autoit][/autoit] [autoit]

    ; === letzte Zeile
    ConsoleWrite('Anzahl Zeilen: ' & $oBook.Worksheets(1).UsedRange.Rows.Count & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    ; === letzte Spalte
    ConsoleWrite('Anzahl Spalten: ' & $oBook.Worksheets(1).UsedRange.Columns.Count & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    ; === Excel Objekt beenden ohne speichern
    $oBook.DisplayAlerts = False
    $oBook.Application.Quit

    [/autoit]