Frage

i'm Programmierung ein vsto Add-in mit einer Automatisierung kombiniert Add-in in VB.NET Visual Studio 2008 mit MS. Die Automatisierung Add-In in Excel und registrierte im System aktiviert. im Grunde die Automatisierung Add-in sehr gut laufen, wenn Sie die Funktion mit

nennen

"=<function-name>(<argument1>;<argument2>;...;<argument-n>)"

, indem sie in eine Excel-Zelle oder mit dem Function zu schreiben.

Die vsto Add-in verwendet wird, eine CommandBarButton einer Fenster-Form zu initiieren über, in dem der Benutzer die Argumente eingeben kann, die erforderlich sind. Wenn der Benutzer eine Zeichenfolge wird geschrieben in der Zelle builded und sieht aus wie das Beispiel abgeschlossen hat, wird oben geschrieben habe.

das Problem ist ich kämpft mit, wenn der Benutzer Excel beginnt, nur das Windows-Formular mit der Zeichenfolge zu erzeugen, und klicken Sie auf „OK“, um die Zelle zu füllen damit, Excel versucht, die Funktion Ursache für die „= finden "in der Zelle, aber nicht es finden. In der Zelle schließlich steht Name?, denn nach der Function-Liste suchen, disapeared registrierten Funktion. (BTW der Add-In noch unter aufgeführt wird „extra-> Add-In“ und wird auch wieder nach dem nächsten excelstart geladen)

Aber auf die anderen Art und Weise, wenn der Benutzer zuerst die Function, um den Wert der Funktion zu erhalten, ist es Typen per Hand in der Zelle oder auch nur die Function öffnen und direkt nach dem Öffnen schließen, ohne die Funktion zu verwenden, meinen windows- Form erzeugte Zeichenfolge funktioniert.

Das OnButtonClick-Ereignis führt den folgenden Beispiel-Code:

Me.Application.ActiveCell.Value = "=FUNCTION(""value1"";""value2"")"

so jetzt meine Frage ist, warum ist die Automatisierungsfunktion disapearing, wenn der Benutzer nur den String-Generator zunächst benutzen?

Einige Ratschläge oder auch die Lösung das mein Problem wäre sehr schön.

Grüße Martin

War es hilfreich?

Lösung

in Ordnung,

Nach einer Woche des Suchens und Testen anderen Code ohne Erfolg, fand ich den Grund meines Problems durch meine eigenen. Ich weiß nicht, warum Excel die Funktion aus der Liste startet, aber die folgende Erklärung wird das Problem lösen hat.

Ich habe zwei Fehler versucht, die Funktion von Code aufzurufen. die erste ist, dass ich das falsche Verfahren zum Schreiben in die Zelle choosed ... verwenden „me.application.activecell.formula“ nur.

der zweite und wichtigste Grund ist die eigentliche Ursache, die ganze Sache didn `t Arbeit. Durch den Versuch, jedes Argument zu setzen, Semikolon, Klammern usw. über eine Zeichenfolge Excel liest die Zeichenfolge im Berechnungsmodus und macht etwas falsch, wenn es auf dem Semikolon in der Formel trifft. Dies führte zu einer COMException (HRESULT: 0x800A03EC). sagte, dass nur ein Fehler aufgetreten

Excel missreads das Semikolon an dieser Stelle ein löst eine Ausnahme. durch Zufall fand ich die Lösung das Semikolon in die Formel, um die Parameter zu trennen. Sie müssen nur schreiben " ", " " in den Code anstelle von " ; ".

Ich freue mich, wenn meine Lösung andere Entwickler mit dem gleichen Problem helfen könnte.

Grüße martin

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