COMException beim Lesen einer Excel-Zelle

Bernhard Bergmann

Grünschnabel
Hallo,

Ich entwickle ein Shared Addin für Office mit Visual Studio 2005.
Dabei lese ich Strings aus den Office-Applikationen Excel oder Winword. Für Excel verwende ich die Code-Zeile
DialNo_Orig = appExcel.Selection.ToString
wobei "appExcel" die bereits offene Applikation Excel ist.

Mein Problem ist jetzt, dass der Code auf fast allen verwendeten Rechnern mit verschiedenen Windows und Office-Applikationen läuft, außer einem Notebook, auf dem eine englische Version von Office2002 (OfficeXP) installiert ist. Hier kommt die COMException
System.Runtime.InteropServices.COMException (0x80028018): Altes Format oder ungültige Typbibliothek. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))
at Microsoft.VisualBasic.CompilerServices.LateBinding.LateGet(Object o, Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack)
at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack)
at BC_Addin_Short.Connect.btt_Dial_Click(CommandBarButton Ctrl, Boolean& CancelDefault)


Beim Stöbern im Internet bin ich schon auf eine Microsoft-Seite gestoßen, die einen Bug im Zusammenhang mit LCIDs beschreibt, der die obige Exception zur Folge hat. Hier ein Auszug:
You receive this error calling an Excel method when the following are true:
•The method requires an LCID (locale identifier).
•You run an English version of Excel but the regional settings for the computer are configured for a non-English language.
Der dort beschriebene Workaround funktioniert allerdings nicht, sodass mein Problem offensichtlich doch ein anderes ist. Hier ist der Link zu dieser Seite http://support.microsoft.com/kb/320369/en-us

Zu erwähnen wäre noch, dass mein Programm auf dem geleichen Rechner beim Lesen aus einem Word-Dokument mit der Zeile
DialNo_Orig = appWord.Selection.ToString
ohne Probleme funktioniert.

Hat jemand eine Idee?

MfG, Bernd
 
Zurück