CoCreateInstance nicht für Klasse Microsoft_Office Excel-Arbeitsblatt. 0x80040514 „Klasse nicht registriert“

StackOverflow https://stackoverflow.com/questions/260142

  •  06-07-2019
  •  | 
  •  

Frage

Eine Probe ich auf Anrufe CoCreateInstance für Klasse Microsoft_Office Excel-Arbeitsblatt arbeite. Es scheitert mit HRESULT von 0x80040514 ( „Klasse nicht registriert“). Andere Excel-Klassen (Excel.Application) auf dem System registriert, aber nicht die, für Arbeitsblatt ..... Ist es möglich, diese Klasse zu registrieren?

Update: Ich bin mit Microsofts DSOFramer Beispielprojekt. Es wird versucht, zuerst eine IMoniker Klasse zu binden, verwenden. Wenn das fehlschlägt, ruft es CoCreateInstance für die CLSID. Dies kann für andere MS-Office-Objekten arbeiten, aber wenn es Excel, ist die Klasse für das Arbeitsblatt. Ich veränderte die Probe zu CoCreateInstance _Application, bekam dann die Arbeitsmappe, rief dann die Workbooks :: Open für die Zieldatei, die ein Arbeitsblatt-Objekt zurückgibt. Ich kehrte dann diesen Zeiger und fusionierte mit dem ursprünglichen Probe Codepfad zurück. Alle arbeiten jetzt.

War es hilfreich?

Lösung

Ich glaube, dass Sie eine verpfuschte installieren kann. Ich habe festgestellt, dass, wenn meine ProgIds beschädigt sind wie, wenn ich reparieren die Installation, die es diese Klasse registriert.

Obwohl meine Frage an Dich zurück, warum versuchen Sie ein Blatt-Objekt zu erstellen? Scheint, wie Sie ein von außerhalb eines Workbook-Objekt zu bekommen. In der Tat fühle mich dies ist wahrscheinlich das, was Sie ohnehin tun müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top