AnsweredAssumed Answered

Application.Run

Question asked by PiSchorsch on Dec 10, 2018
Latest reply on Dec 10, 2018 by Steve Boyko

Hallo

Ich arbeite als Meister in einem Chemiebetrieb, und wir nutzen PI. Ich habe die Möglichkeit mir über Excel mit PiAddInn  Prozessdaten, z.B. den Status eines Reaktors, nach Excel zu holen. Ich bin ein alter MS-Basic-Fan und habe mir so nach und nach die wichtigsten Funktionen von VBA für Excel angeeignet, und schreibe einige kleine Anwedungen, die mir meine tägliche Arbeit erleichtern. Ich importiere die Daten etwa so :

 

     Dim Status as Variant, Status2 as Double

     Status = Application.Run("PINCompDat",Tagname,Datum,1,9,server,"interpolated")

 

Als Status wird jetzt ein Wert von 0 bis 99 zurückgegeben. Jetzt möchte ich vergleichen ob Status den Wert 50 hat. Beispiel :

 

     If Status =50 then stop

 

Eigentlich müsste das Programm hier stoppen. Beim starten kommt aber die Fehlermeldung "run-time-error '13'  Type missmatch". Hätte ich selber Status den Wert 50 zugewiesen, hätte das, Programm gestoppt. Jeder Versuch mit dem Rückgabewert zu arbeiten wenn der Wert über Application.Run zugewiesen wurde, scheitern.

 

Auch scheitern alle Versuche die Variable Staus in einen anderen Datentyp umzuwandeln :

 

     Status2 =CDbl(Status)

 

ergibt ebenfalls : "run-time-error '13'  Type missmatch". Es gibt nur eine Möglichkeit, um mit dem Rückgabewert zu arbeiten. Ich muss den Rückgabewert von Application.Run erst in eine Zelle schreibe, und dann direkt wieder auslesen:

 

     Dim Status as Variant, Status2 as Double

     Status = Application.Run("PINCompDat",Tagname,Datum,1,9,server,"interpolated")

     Worksheets("Sheet1").Cells(1,1) = Status

     Status = Worksheets("Sheet1").Cells(1,1).value

     Status2 =CDbl(Status)

     If Status2 = 50 then stop

 

Es muss doch einen anderen Weg geben, als das Ergebnis erst in eine Zelle zu schreiben, um sie dann wieder einzulesen. Nach dem Einlesen ist der Datentyp immer noch Variant, aber ist dann umwandelbar und ich kann mit ihm rechen. Wäre üfür jeden Tip dankbar.

 

mfg

 

Robert

Outcomes