Problem mit _ExcelWriteArray

  • Hallo zusammen,

    ich verwerte einen Array aus der Funktion _ExcelReadArray und gebe ihn an die Funktion _ExcelWriteArray weiter, welches ihn wieder in eine Excel-Tabelle schreibt...
    Es kommt jedoch folgende Fehlermeldung:
    C:\Program Files\AutoIt3\Include\Excel.au3 (526) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    $oExcel.Activesheet.Cells($iStartRow, ($xx - $iIndexBase) + $iStartColumn).Value = $aArray[$xx]
    $oExcel.Activesheet.Cells($iStartRow, ($xx - $iIndexBase) + $iStartColumn).Value = ^ ERROR

    Die Fehlermeldung bezieht sich scheinbar auf die UDF von AutoIT und nicht auf mein Script...
    Ich habe auch schon mal probiert, einen selbstgebastelten Array an die Funktion zu übergeben, aber da kommt die gleiche Fehlermeldung.

    Muss ich den Fehler in meinem Script oder der UDF von AutoIT suchen?

    Wäre schön, wenn mir da jemand helfen könnte :) :)

    LG FKFK

  • Hi,

    ja, die Fehlermeldung bezieht sich auf die UDF, wird aber gffs. durch einen falschen Aufruf erzeugt.

    Du solltest mal mehr Code posten.

    ;-))
    Stefan

  • Ah, OK, geht klar :)

    Oben den Array habe ich einfach nur mal testweise erzeugt. Die andere Funktion, mit dem ich ihn nämlich erstellen würde, funktioniert...

    mein Script
    [autoit]

    Dim $_excArray[2][5] = [[3, 98303, 9038903, 8899], [3, 890282, 2982, 981]]
    _NachExcel("C:\Users\administrator\Desktop\AutoIT\Exceldaten-Extraktor\Temp123.xls", $_excArray)

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

    Func _NachExcel($Pfad, $Array, $StZe = 1, $StSp = 1, $Rich = 0, $Base = 0)
    Opt("MustDeclareVars", 1)
    Local $ID = _ExcelBookNew(0) ;Neue Datei wird erstellt
    _ExcelBookSaveAs($ID, $Pfad)
    If @error = 1 Then
    MsgBox(16, "Fehler!", "Das Excel-Objekt konnte nicht erstellt werden.")
    Return
    ElseIf @error = 3 Then
    MsgBox(16, "Fehler!", "Die Datei existiert, kann aber nicht überschrieben werden." & @CRLF & "Bitte ander Datei auswählen oder die Überschreibung aktivieren!")
    Return
    EndIf
    _ExcelWriteArray($ID, $StZe, $StSp, $Array, $Rich, $Base) ;Datei wird auf dem angegebenen Pfad erstellt
    ;Fehlerprüfung
    Select
    Case @error = 1
    MsgBox(16, "Fehler!", "Das erstellte Excel-Objekt konnte nicht aufgerufen werden.")
    Return
    Case @error = 2
    MsgBox(16, "Fehler!", "Die Parameter sind außerhalb des zulässigen Bereichs!")
    Return
    Case @error = 3
    MsgBox(16, "Fehler!", "Das übergebene Array ist kein Array oder existiert nicht.")
    Return
    Case @error = 4
    MsgBox(16, "Fehler!", "Die Parameter, die die Richtung bestimmen, sind unzulässig.")
    Return
    EndSelect
    If _ExcelBookSave($ID) = 0 Then MsgBox(16, "Fehler!", "Speichern fehlgeschlagen!" & @CRLF & "Fehlercode:" & @error) ;Datei wird gespeichert
    If _ExcelBookClose($ID) = 0 Then MsgBox(16, "Fehler!", "Die Datei konnte nicht erfolgreich geschlossen werden!") ;Datei wird geschlossen. Sollte sie nicht abgespeichert worden sein, dann wird dies standartmäßig automatisch gemacht
    EndFunc

    [/autoit]
  • _ExcelWriteArray arbeitet nur mit 1D-Arrays oder irre ich da?

    Hoffentlich irrst du dich :S
    Es steht zwar nirgends dabei, dass es nur 1D-Arrays sind, aber im Beispiel in der Hilfe wird auch nur ein 1D-Array benutzt...
    Dann musste ich die Funktion wohl bei mir umändern...

    Auf jeden Fall wird bei einem 1D-Array keine Fehlermeldung mehr angezeigt.

    • Offizieller Beitrag

    Schnitzel, du hast völlig recht. Das ist wieder ein typisches Bsp., wie man eine UDF nicht schreiben sollte. An eine Tabelle (2D-Array) kann nur ein 1D-Array übergeben werden. Oh, wie sinnvoll... :S
    Diese Funktion ermöglicht also nur Zeilen oder Spalten Inhalte in einem Array zu übergeben. Sicher ist das auch nützlich, aber geht weit vorbei an einer sinnvollen, komplexen Funktion. :thumbdown:

    Zitat

    Write an array to a row or column on the active worksheet of the specified Excel object.

  • Da könnte man ja fast schon stattdessen UDFs hier aus dem Forum einbauen :rofl:

    Wenn wir grad beim Thema sind: Entweder ich schreibe die selbst oder gibt es hier jemanden, der sowas schon gemacht hat?
    Noch eine kleine Frage: Wie kann ich bei diesem zweidimensionalen Array (Zeile mal Spalte) eine ganze Dimension (in diesem Fall die Spalten) so übertragen, dass sie sich in einem anderen eindimensionalen Array befinden?

  • so ich glaub des funktioniert:
    is blos quick n dirty sollte dir aber genügen ;)
    is gleich n beispiel


    Spoiler anzeigen
    [autoit]

    #include <Excel.au3>

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

    Dim $_excArray[2][5] = [[3, 98303, 9038903, 8899], [3, 890282, 2982, 981]]
    Local $ID = _ExcelBookNew(0) ;Neue Datei wird erstellt
    _ExcelBookSaveAs($ID, @DesktopDir & "\Temp123.xls")
    _ExcelWriteArray2D($ID, 1, 1, $_excArray)
    _ExcelBookSave($ID)
    _ExcelBookClose($ID)

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

    Func _ExcelWriteArray2D($oExcel, $iStartRow, $iStartColumn, $aArray, $iDirection = 0, $iIndexBase = 0)
    If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
    If $iStartRow < 1 Then Return SetError(2, 0, 0)
    If $iStartColumn < 1 Then Return SetError(2, 1, 0)
    If Not IsArray($aArray) Then Return SetError(3, 0, 0)
    If $iDirection < 0 Or $iDirection > 1 Then Return SetError(4, 0, 0)
    If Not (Ubound($aArray, 0) = 2) Then Return SetError(5, 0, 0)
    If Not $iDirection Then
    For $i = 0 To Ubound($aArray, 2)-1
    For $xx = $iIndexBase To UBound($aArray) - 1
    $oExcel.Activesheet.Cells($iStartRow + $i, ($xx - $iIndexBase) + $iStartColumn).Value = $aArray[$xx][$i]
    Next
    Next
    Else
    For $i = 0 To Ubound($aArray, 2)-1
    For $xx = $iIndexBase To UBound($aArray) - 1
    $oExcel.Activesheet.Cells(($xx - $iIndexBase) + $iStartRow, $iStartColumn + $i).Value = $aArray[$xx][$i]
    Next
    Next
    EndIf
    Return 1
    EndFunc ;==>_ExcelWriteArray

    [/autoit]
  • Danke, schonmal vielen Dank :thumbup: :thumbup: :thumbup:
    Ich werde den oberen Abschnitt nochmal in eine Funktion packen müssen, da das Bestandteil einer Bibliothek werden soll, aber das ist ja fast kein Aufwand :D

    PS: Habe dich sogar als Scripter für dein Script eingetragen. Vielleicht wirst du ja irgendwann noch berühmt ;)

  • So, nächstes Problem^^
    Es hat alles funktioniert, bis ich die Funktion aus einer andren habe aufrufen lassen.
    Folgendes Problem:
    -------------
    C:\Program Files\AutoIt3\Include\Excel.au3 (356) : ==> The requested action with this object has failed.:
    If $sPassword = "" And $sWritePassword = "" Then $oExcel.ActiveWorkBook.SaveAs($sFilePath, $sType, Default, Default, Default, Default, $iAccessMode, $iConflictResolution)
    If $sPassword = "" And $sWritePassword = "" Then $oExcel.ActiveWorkBook.SaveAs($sFilePath, $sType, Default, Default, Default, Default, $iAccessMode, $iConflictResolution)^ ERROR
    ->15:13:10 AutoIT3.exe ended.rc:1
    >Exit code: 1 Time: 16.985
    --------------
    Hier mein Script:

    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.6.0
    Author: FlorianKurrle

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

    Script Function:
    Daten in eine Exceltabelle aus einem Array übertragen, welche davor erstellt wird.
    Anwendung:

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    #include-once ;Datei darf nur einmal eingebunden werden (sobald es einmal eingebunden ist, kann die Funktion häufig verwendet werden)
    ; Wichtige Dateien werden eingebunden
    #include <Excel.au3>

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

    ;#include "C:\Users\administrator\Desktop\AutoIT\Library\ExceltabelleAuslesen.au3"
    ;_AusExcel ("C:\Users\administrator\Desktop\AutoIT\Exceldaten-Extraktor\Temp.xls")
    Dim $_excArray[2][5] = [[3, 98303, 9038903, 8899], [3, 890282, 2982, 981]]
    _NachExcel("C:\Users\administrator\Desktop\AutoIT\Exceldaten-Extraktor\Temp123.xls", $_excArray)

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

    Func _NachExcel($_excArray, $Pfad, $StartZeile =1 , $StartSpalte = 1, $Richtung = 0, $Base = 0)
    Local $ID ;Deklarierung der Variable(n)
    $ID = _ExcelBookNew(0) ;Neue Datei wird erstellt
    ;Fehlerprüfung
    If $ID = 0 Then
    MsgBox(16, "Fehler!", "Das Excel-Objekt konnte nicht erstellt werden." & @CRLF & "(Open)" & @error)
    _ExcelBookClose($ID)
    Return
    EndIf
    ;----
    _ExcelBookSaveAs($ID, $Pfad) ;Datei wird gespeichert
    ;Fehlerprüfung
    If @error = 1 Then
    MsgBox(16, "Fehler!", "Das Excel-Objekt konnte nicht erstellt werden." & @CRLF & "(SaveAs)")
    _ExcelBookClose($ID)
    Return
    ElseIf @error = 3 Then
    MsgBox(16, "Fehler!", "Die Datei existiert, kann aber nicht überschrieben werden." & @CRLF & "Bitte ander Datei auswählen oder die Überschreibung aktivieren!")
    _ExcelBookClose($ID)
    Return
    EndIf
    ;----Weiterleitung ans Hauptscript
    _ExcelWriteArray2D($ID, $StartZeile, $StartSpalte, $_excArray, $Richtung, $Base)
    ;Fehlerprüfung
    Select ;Kurze Erklärung:
    Case @error = 1 ;Falls der Error-Wert (der innerhalb der Funktion manuell gesetzt wird) diese Zahl hat, wird folgendes gemacht:
    MsgBox(16, "Fehler!", "Das erstellte Excel-Objekt konnte nicht aufgerufen werden.") ;1. Die Fehlermeldung ausgegeben
    _ExcelBookClose($ID) ;2. Die Excel-Datei geschlossen (sonst läuft sie im Hintergrund weiter und der Prozess muss per taskmgr geschlossen werden)
    Return ;3. Die Funktion wird verlassen
    Case @error = 2
    MsgBox(16, "Fehler!", "Die Parameter sind außerhalb des zulässigen Bereichs!")
    _ExcelBookClose($ID)
    Return
    Case @error = 3
    MsgBox(16, "Fehler!", "Das übergebene Array ist kein Array oder existiert nicht.")
    _ExcelBookClose($ID)
    Return
    Case @error = 4
    MsgBox(16, "Fehler!", "Die Parameter, die die Richtung bestimmen, sind unzulässig.")
    _ExcelBookClose($ID)
    Return
    Case @error = 5
    MsgBox(16, "Fehler!", "Das Array hat mehr oder weniger wie 2 Dimensionen...")
    _ExcelBookClose($ID)
    Return
    EndSelect
    ;---Speichern
    If _ExcelBookSave($ID) = 0 Then MsgBox(16, "Fehler!", "Speichern fehlgeschlagen!" & @CRLF & "Fehlercode:" & @error) ;Datei wird gespeichert
    ;---Schließen
    If _ExcelBookClose($ID) = 0 Then MsgBox(16, "Fehler!", "Die Datei konnte nicht erfolgreich geschlossen werden!") ;Datei wird geschlossen. Sollte sie nicht abgespeichert worden sein, dann wird dies standartmäßig automatisch gemacht
    ;---Ende
    EndFunc

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

    Func _ExcelWriteArray2D($oExcel, $iStartRow, $iStartColumn, $_excArray, $iDirection = 0, $iIndexBase = 0) ;scripted by Schnitzel->AutoIT.de
    If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
    If $iStartRow < 1 Then Return SetError(2, 0, 0)
    If $iStartColumn < 1 Then Return SetError(2, 1, 0)
    If Not IsArray($_excArray) Then Return SetError(3, 0, 0)
    If $iDirection < 0 Or $iDirection > 1 Then Return SetError(4, 0, 0)
    If Not (Ubound($_excArray, 0) = 2) Then Return SetError(5, 0, 0)
    If Not $iDirection Then
    For $i = 0 To Ubound($_excArray, 2)-1
    For $xx = $iIndexBase To UBound($_excArray) - 1
    $oExcel.Activesheet.Cells($iStartRow + $i, ($xx - $iIndexBase) + $iStartColumn).Value = $_excArray[$xx][$i]
    Next
    Next
    Else
    For $i = 0 To Ubound($_excArray, 2)-1
    For $xx = $iIndexBase To UBound($_excArray) - 1
    $oExcel.Activesheet.Cells(($xx - $iIndexBase) + $iStartRow, $iStartColumn + $i).Value = $_excArray[$xx][$i]
    Next
    Next
    EndIf
    Return 1
    EndFunc ;==>_ExcelWriteArray

    [/autoit]
  • Mal ganz doof gefragt:
    Wo is nu der Unterschied zu:

    Spoiler anzeigen
    [autoit]

    Func _ExcelWriteSheetFromArray($oExcel, ByRef $aArray, $iStartRow = 1, $iStartColumn = 1, $iRowBase = 1, $iColBase = 1)
    ; Test inputs
    If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
    If $iStartRow < 1 Then Return SetError(2, 0, 0)
    If $iStartColumn < 1 Then Return SetError(2, 1, 0)
    If Not IsArray($aArray) Then Return SetError(3, 0, 0)
    Local $iDims = UBound($aArray, 0), $iLastRow = UBound($aArray, 1) - 1, $iLastColumn = UBound($aArray, 2) - 1
    If $iDims <> 2 Then Return SetError(3, 1, 0)
    If $iRowBase > $iLastRow Then Return SetError(4, 0, 0)
    If $iColBase > $iLastColumn Then Return SetError(4, 1, 0)

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

    Local $iCurrCol
    For $r = $iRowBase To $iLastRow
    $iCurrCol = $iStartColumn
    For $c = $iColBase To $iLastColumn
    $oExcel.Activesheet.Cells($iStartRow, $iCurrCol).Value = $aArray[$r][$c]
    $iCurrCol += 1
    Next
    $iStartRow += 1
    Next
    Return 1
    EndFunc ;==>_ExcelWriteSheetFromArray

    [/autoit]

    [MSIE_newline_end ]

  • :rolleyes:
    Das habe ich ganz übersehen! Danke, dass du mich drauf aufmerksam gemacht hast :) :)

  • Was mir so auffällt:
    Die Funktion leitest du so ein:

    [autoit]

    Func _NachExcel($_excArray, $Pfad, $StartZeile =1 , $StartSpalte = 1, $Richtung = 0, $Base = 0)

    [/autoit]


    Aber die Funktion aufrufen machste mit:

    [autoit]

    _NachExcel("C:\Users\administrator\Desktop\AutoIT\Exceldaten-Extraktor\Temp123.xls", $_excArray)

    [/autoit]


    Die Funktion erwartet aber erst das Array und dann den Pfad ... so wie ich es verstehe ...[MSIE_newline_end ]

  • Ja, das habe ich bereits geändert.
    Trotzdem danke!

    Diesmal zeigt er mir folgendes an:
    C:\Program Files\AutoIt3\Include\Excel.au3 (340) : ==> Variable used without being declared.:
    If $sType = "xls" Then $sType = $xlNormal
    If $sType = "xls" Then $sType = ^ ERROR
    ->16:25:20 AutoIT3.exe ended.rc:1

    Aber nur, wenn ich den Array selbst definiere: Dim $_excArray[2][5] = [[3, 98303, 9038903, 8899], [3, 890282, 2982, 981]]
    Ich frage mich, was ich da falsch gemacht habe...
    Wenn ich nämlich den Array von der anderen Funktion übernehmen, funktioniert das einwandfrei...

  • So, mal schauen:
    Zeile 340 in der Excel.au3 ist die Funktion _ExcelBookSaveAs.
    Die Funktion wird aufgerufen in Zeile 33: _ExcelBookSaveAs($ID, $Pfad).
    Öhm ok, Verständnisfrage ... wenn du die Tabelle mit "speichern unter einem anderen Namen" speichern willst, wieso überprüfst du dann, ob die Tabelle überschrieben wurde?
    *code anschau*
    Ok, ich gehe davon aus, das du immer nur das eine Excel-File "C:\Users\administrator\Desktop\AutoIT\Exceldaten-Extraktor\Temp123.xls" verwenden willst.
    Dann nimm einfach _ExcelBookSave. Das speichert dir das Exce-File.
    Zeile 33: _ExcelBookSave($ID, 1)
    Ich muss sagen, ich steige bei der Funktion _ExcelBookSaveAs gerade nicht wirklich durch mit den Parametern <.<
    Und dieses [MSIE_newline_end ] nervt irgendwie ...[MSIE_newline_end ]

  • Ich möchte das natürlich auch in andre Dateien übertragen können. Dafür ist ja der Pfad-Parameter gedacht. Pfad- und Schreibschutzparameter werden direkt an SaveAs übergeben.
    Mein Problem ist, dass ich ohne SaveAs das nicht auf einen beliebigen Pfad gespeichert bekomme...

    [autoit]

    ; Script Start - Add your code below here
    ;Beispiel 1 --- Array wird hier definiert und dann weiterverwendet
    Dim $_excArray[2][5]=[[3, 98303, 9038903, 8899], [3, 890282, 2982, 981]] ;Informationen zu den Arrays befinden sich in der Hilfe
    _NachExcel("C:\Users\administrator\Desktop\AutoIT\Exceldaten-Extraktor\Temp123.xls", $_excArray, 1, 1, 0, 0) ;Der Array wird in den angegebenen Pfad kopiert. Da hier die Basis 0 ist, muss das Script entsprechend eingestellt werden.

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

    ;Beispiel 2 --- Array wird aus einer anderen Funktion übernommen, die aber erst eingebunden wird
    ;#include "C:\Users\administrator\Desktop\AutoIT\Library\ExceltabelleAuslesen.au3" ;Sie wird eingebunden
    ;_AusExcel ("C:\Users\administrator\Desktop\AutoIT\Exceldaten-Extraktor\Temp.xls") ;Die Funktion wird zur Erzeugung des Arrays aufgerufen
    ;_NachExcel("C:\Users\administrator\Desktop\AutoIT\Exceldaten-Extraktor\Temp123.xls", $_excArray) ;Der Array wird in dieser Funtion weiterverwendet, die ihn dann in eine Tabelle übertragt.

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

    ;Beispiel 3, --- Schreibschutz muss deaktviert werden, da die Datei vermutlich schon existiert
    ;#include "C:\Users\administrator\Desktop\AutoIT\Library\ExceltabelleAuslesen.au3"
    ;_AusExcel ("C:\Users\administrator\Desktop\AutoIT\Exceldaten-Extraktor\Temp.xls")
    ;_NachExcel("C:\Users\administrator\Desktop\AutoIT\Exceldaten-Extraktor\Temp123.xls", $_excArray, 1, 1, 1, 1, 1)

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

    ; Wichtige Dateien werden eingebunden
    #include <Excel.au3>
    #include-once ;Datei darf nur einmal eingebunden werden (sobald es einmal eingebunden ist, kann die Funktion häufig verwendet werden)

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

    Func _NachExcel($Pfad, $_excArray, $StartZeile = 1 , $StartSpalte = 1, $BaseZ = 1, $BaseS =1, $SchSch = 0)
    Local $ID ;Deklarierung der Variable(n)
    $ID = _ExcelBookNew(0) ;Neue Datei wird erstellt
    ;Fehlerprüfung
    If $ID = 0 Then
    MsgBox(16, "Fehler!", "Das Excel-Objekt konnte nicht erstellt werden." & @CRLF & "(Open)" & @error)
    _ExcelBookClose($ID)
    Return
    EndIf
    ;----
    _ExcelBookSaveAs($ID, $Pfad, "xls", 0, $SchSch) ;Datei wird gespeichert
    ;Fehlerprüfung
    If @error = 1 Then
    MsgBox(16, "Fehler!", "Das Excel-Objekt konnte nicht erstellt werden." & @CRLF & "(SaveAs)")
    _ExcelBookClose($ID)
    Return
    ElseIf @error = 3 Then
    MsgBox(16, "Fehler!", "Die Datei existiert, kann aber nicht überschrieben werden." & @CRLF & "Bitte ander Datei auswählen oder das Überschreiben aktivieren!")
    _ExcelBookClose($ID)
    Return
    EndIf
    ;----Weiterleitung ans Hauptscript
    _ExcelWriteSheetFromArray($ID, $_excArray, $StartZeile, $StartSpalte, $BaseZ, $BaseS);($ID, $StartZeile, $StartSpalte, $_excArray, $Richtung, $Base)
    ;Fehlerprüfung
    Select ;Kurze Erklärung:
    Case @error = 1 ;Falls der Error-Wert (der innerhalb der Funktion manuell gesetzt wird) diese Zahl hat, wird folgendes gemacht:
    MsgBox(16, "Fehler!", "Das erstellte Excel-Objekt konnte nicht aufgerufen werden.") ;1. Die Fehlermeldung ausgegeben
    _ExcelBookClose($ID) ;2. Die Excel-Datei geschlossen (sonst läuft sie im Hintergrund weiter und der Prozess muss per taskmgr geschlossen werden)
    Return ;3. Die Funktion wird verlassen
    Case @error = 2
    MsgBox(16, "Fehler!", "Die Parameter sind außerhalb des zulässigen Bereichs!")
    _ExcelBookClose($ID)
    Return
    Case @error = 3
    MsgBox(16, "Fehler!", "Das übergebene Array ist kein Array oder existiert nicht.")
    _ExcelBookClose($ID)
    Return
    Case @error = 4
    MsgBox(16, "Fehler!", "Die Parameter, die die Richtung bestimmen, sind unzulässig.")
    _ExcelBookClose($ID)
    Return
    EndSelect
    ;---Speichern
    If _ExcelBookSave($ID) = 0 Then MsgBox(16, "Fehler!", "Speichern fehlgeschlagen!" & @CRLF & "Fehlercode:" & @error) ;Datei wird gespeichert
    ;---Schließen
    If _ExcelBookClose($ID) = 0 Then MsgBox(16, "Fehler!", "Die Datei konnte nicht erfolgreich geschlossen werden!") ;Datei wird geschlossen. Sollte sie nicht abgespeichert worden sein, dann wird dies standartmäßig automatisch gemacht
    ;---Ende
    EndFunc

    [/autoit]
  • Hachka, wäre ja auch zu einfach gewesen ;)
    Hmm, ich muss mir mal die deutsche Übersetzung der Hilfe anschauen, weil ich stoße dauernd an die Grenzen meiner Englischkenntnisse <.<
    Geht also nen Moment^^
    *brummel* *motz*
    Setz das Include aus Zeile 17+18 ganz nach oben an den Anfang des Scriptes und vertausch es.
    Also zuerst #include-once, dann #include <Excel.au3> ...[MSIE_newline_end ]

    Einmal editiert, zuletzt von Seldzar (30. März 2010 um 17:48)

  • :thumbup: :thumbup:
    Danke! Jetzt funktioniert das ganze Script wirklich! Danke an euch alle :D :D

    Dann kann ich jetzt endlich weiter an meiner library arbeiten.

    Ein kleiner Tipp noch an dich:
    http://translation.autoit.de/autoitinfo/hil…nd-24_03_10.zip da kannst du dir die deutsche Hilfe runterladen. Einfach in den AutoIT-Ordner packen und die alte ersetzen.
    Wenn du dir diese Datei runterlädst http://www.scintilla.org/locale.de.properties (einfach die Seite speichern) und in den SciTE-Ordner, der sich im AutoIT-Ordner befindest kopierst und anschließend noch das "de." im Namen wegmachst, hast du einen deutschen Editor.
    Solltest du dann noch die Befehlsbeschreibungen (die einem immer helfen, wenn man etwas im Editor eingibst) auf Deutsch haben möchtest, lade dir einfach http://translation.autoit.de/autoitinfo/hil…nd-24_03_10.zip runter und benne die Datei in au3.api um und kopiere sind in den Api-Ordner, der sich im SciTE-Ordner befindet.

    Dann hast du alles auf Deutsch und bist rundum versorgt :D
    Ich hoffe, ich konnte damit auch dir etwas helfen!

  • Hallo zusammen, ich wollte mich auch mal bei Euch bedanken, ich stand vor dem selben Problem und habe es mit Eurer Funktion lösen können.

    Das hat mir einiges an Zeit gespart :)

    GrüüüÜÜÜüüüße, Goink