Aktive Zelle ermitteln

  • Hallo erst mal!

    ich hab mir schon die Finger wuschig gesucht. Wie kann man die aktuelle Zelle aus einem Tabellenblatt ermitteln. Soll heißen.
    eine offene Arbeitsmappe
    ich bin z.B. In B12

    und diesen inhalt soll mir autoit dann verraten mit _ExcelReadCell(ebeneermitteltzeile;ebenermitteltspalte)

    ich kanns einfach nicht finden - danke schon mal!

    der dau

  • Danke,
    bin aber dau.

    folgenden Fehler bekomme ich dann:
    ==> The requested action with this object has failed.:
    $oAvtive = $oSheet.ActiveCell.Value
    $oAvtive = $oSheet.ActiveCell^ ERROR
    >Exit code: 1 Time: 1.618


    Was mache ich schon wieder falsch??

    Danke schon mal!

  • So wie es aussieht gibt es kein $oAvtive = $oSheet.ActiveCell.Value. Falsches Objektoption (kp wie das heißt) gewählt, es gibt kein Value in dem Objekt. Such mal bei google nach Beispielen und/oder guck dir noch mal die Objektreferenz an.

  • edit \ Sorry, natürlich geht das!

    Spoiler anzeigen
    [autoit]


    #include <Excel.au3>
    $oExcel = _ExcelBookNew()

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

    _ExcelWriteCell($oExcel,'Hallo','A1')
    $test=$oExcel.ActiveCell.Column
    $test2=$oExcel.ActiveCell.Row
    ConsoleWrite(VarGetType($test) & @crlf)
    ConsoleWrite('Aktive Cell: '& $test2& ' ' & $test &@crlf)

    [/autoit]

    Allerdings beide als integer.

  • Danke!

    Stimmt es lag an : $oExcel.ActiveCell


    Danke an alle - ich denke es ist gelöst

  • Schön. Ich habe aber noch einen Tipp für dich. Verwende nicht immer o als ersten Buchstaben der Variablen. Dieser Buchstabe soll anzeigen, dass die Variable ein Objekt beinhaltet. Für Ganzahlen solltest du ein i verwenden, für Strigs ein s. Unbekannte Typen werden mit v gekennzeichnet. Dadurch wird der Code übersichtlicher.


    [autoit]

    $iActiveRow = $oExcel.ActiveCell.Row ;Zeile

    $iActiveCol = $oExcel.ActiveCell.Column ; Spalte
    $sActiveCol = Chr(64+$iActiveCol) ; So kann die Spalte in den Buchstaben umgewandlet werden

    $vActive = StringLeft($oExcel.ActiveCell.Value, 26) ;Wert

    [/autoit]