Wie kann ich auf ein Excel Sheet zugreifen, ohne jedesmal neu Excel starten zu müssen?

  • Tag zusammen,

    ich habe eine Tabelle mit einem Arbeitsblatt (Sheet). Damit ich Inhalte von Zellen auslesen kann, muß ich bisher immer sowas machen:

    Local $zelle[1000][500]
    Local $oExcel = _ExcelBookOpen("I:\Daten\Excel\Adressen.xlsm")
    For $reihe = 2 to 999
    For $spalte = 1 To 10 ;Loop
    $zelle[$reihe][$spalte] = _ExcelReadCell($oExcel, $reihe, $spalte)
    ;MsgBox(1, "", "Reihe" & $reihe &" " & "Spalte" & $spalte & " " & $zelle[$reihe][$spalte])
    Next
    Next

    Wenn ich einen Fehler im Skript habe, muß ich jedesmal die Tabelle schließen und neu laden, was schon Zeit kostet. Eleganter wäre, einfach mit WinActivate Excel wieder zu aktivieren. Der Dokumentation habe ich entnommen, daß _ExcelReadCell wohl nur mit einem vorangegangenen _ExcelBookOpen oder _ExcelBookNew funktioniert.

    Kann ich meine Tabelle offen lassen und mit _ExcelSheetActivate darauf zugreifen?
    Ist es möglich, die zeitraubende Prozedur, die Variablen einzulesen, nur einmal mit einem Skript zu machen und selbst, wenn ich dann ein anderes Skript starte, die Variablen zu nutzen?

    Hintergrund ist, daß ich in der Excel Tabelle eine unvollständige Adressliste habe, aus der ich die emails in die Variablen lese, dann ein anderes Programm aktiviere, hier jeweils eine email in ein Onlineformular eingebe, absende und dann die restlichen Daten zurückerhalte. Die lese ich in andere Variablen ein, aktiviere wieder Excel und fülle dann die entsprechenden Zellen.

    Es kommen jedoch durch falsch ausgefüllte Felder oft Abbrüche vor, sodaß ich das Skript nacharbeiten muß - und wieder neu starte.

    Danke