Announcement

Collapse
No announcement yet.

Probleme mit Delphi 5 und Excel 97 und OLE-Fehler 800A03EC

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit Delphi 5 und Excel 97 und OLE-Fehler 800A03EC

    Hallo Leute, ich habe folgendes Problem:

    Ich habe über "excel:= CreateOleObject('Excel.Application');" eine Verbindung zu Excel aufgebaut und
    möchte in einer Excel-Zelle das aktuelle Datum übertragen.
    Excel.cells[j+2,j].Value:= '=today()'; // Excel liefert ein richtiges Ergebnis
    Excel.cells[j+2,j].Value:= '=heute()'; // Excel liefert als Ergebnis #BEZUG!,
    obwohl sobald ich in irgendeiner Zelle in Excel manuell =heute() eingebe, das richtige Datum erscheint.
    Woran liegt das?

    Zum anderen habe ich noch ein Problem mit folgender Zeile:
    Excel.cells[j+2,j].Value:= '=DatumPlusArbeitsTage(Heute();2);
    Hier erhalte ich einen OLE-Fehler 800A03EC

    Die Funktion DatumPlusArbeitsTage ist eine Add-In-Fkt. in Excel. Die zugrundeliegende Datei hat die
    Dateiendung xll (Excel Link Library?).
    Wer hat eine Idee für so einen Fall?

    Bye, Carsten

  • #2
    Hallo,

    wenn Win32 nach dem OLE-Fehler 800A03EC befragt wird, erhählt man die folgende Auskunft:<br>
    <i>
    Error Result : 0x800A03EC ( -2146827284 ) <br>
    ID Defined as : <br>
    Error Type : OLE HRESULT Error<br>
    Facility : FACILITY_CONTROL 0x0000000A ( 10 )<br>
    Severity : SEVERITY_ERROR 0x00000001 ( 1 )<br>
    Code : 0x000003EC ( 1004 )<br>
    Source Error file : <br>
    Message Text : This 800a03ec is a FACILITY_CONTROL (HRESULT_SEVERITY = 1 and HRESULT_CODE = 3ec) error that is specific to the control's interface that returned this error. See the documentation of the interface that returned this error for information about this HRESULT.
    </i>
    Es handelt sich also um eine Excel-spezifische Fehlernummer.

    Wenn man die <i>Microsoft Knowlegde Base</i> (auf der MSDN Library-DVD) durchsucht, tauchen Bezüge auf diese Fehlernummer im Zusammenhang auf VBScript/JScript auf (compilation error).

    Microsoft hat ab Office 97 intern die Übersetzung/Anpassung der Anweisungen an die jeweilige Produktsprache gestrichen, intern wird nur noch Englisch verwendet. Die Programmoberfläche scheint bei der manuellen Eingabe die "alten" deutschen Kommandos noch in die englischen Befehle zu übersetzen, aber bei der Automation (Fernbedienung über die COM-Schnittstellen) wird dieser Komfort nicht zur Verfügung stehen. Ich würde daher nur die englischen Funktionen (wie today) verwenden

    Comment


    • #3
      Hi Andreas, Danke für Deine prompte Antwort erstmal. Das mit den englischen Befehlen macht Sinn. Werde ich befolgen den Tip.

      Ich kann dies aber nicht befolgen bei der zugrundeliegenden Add-In Datei call.xll.
      In dieser XLL existiert z.B. eine Funktion "DatumPlusArbeitsTage" die als Parameter den heutigen Tag sowie die Anzahl der PlusTage benötigt.

      Kann ich vielleicht Excel irgendwie dazu bringen, daß er einfach in die Zelle folgenden Code reinschreibt:
      Zelle = '=DatumPlusArbeitsTage(Heute();2);

      Er braucht die Formel ja nicht direkt auszurechnen. Er soll einfach nur den Text in diese Zelle schreiben. Vielleicht kann ich ja so später, in Excel wiederum, Excel in den Rechenmodus schalten bzw. zur Aktualisierung der Zellen bringen.

      Kann ich anderweitig den Code der XLL mir in irgendeiner Weise anschauen und evtl die Funktionen so nachbilden? Vielleicht gibt es ja dafür ein Tool oder etwas ähnliches. Bin für jeden Tip dankbar.

      Bye Carste

      Comment

      Working...
      X