Hjælp til egen function
Hej ekstert-venner !Jeg er igang med at lave min egen function, der i funktionskaldet fåt 2 input: et udstyrsnummer elsempel "325A og et tidsstempel elsempel 2014-02-27 11:00.
Den skal bruges til at lave en beregning af hvor meget der produceres på diverse udstyr på nogle givne tidspunkter eksempelvis på "325A" kl. 2014-02-27 11:00
Funktionen gennemløber en plan i et andet sheet, hvor udstyrsnummer og start- og stop-tidsstempler er ligger.
Funktionen returnerer en værdi for produktionen hvis udstyret er i drift på det tidsstempel der forespørges om.
Men hvis udstyret ikke er i drift, returneres "#VALUE", og med den slags data (fejl) fejler min sammentælling, når jeg vil beregne den samlede produktion.
Hvordan får jeg funktionen til at returnere værdien O, når udstyret ikke er i produktion?
Der er 3 mulige værdier at returnere:
40 hvis udstyret er i opstartsfasen (de første 10 timer efter start)
95 hvis udstyret er i produktionsfasen (de første 10 timer efter start)
30 hvis udstyret er i SlowDownfasen (de sidste 5 timer iden stop)
har forsøgsvis tilføjet ern linie fæsten øverst i fukktionen til i forsøg på at få den til at returene 0 hvis ikke funktionen fandt noget...
Altså hvis ikke der blev fundet produktion på udstyret vil jeg gerne ændre den returnerede værdi fra "#VALUE" til talværdien 0
kan jeg indbygge dette i funktionen?
Function IsRunning(Tank As String, TimeStamp As Date)
Dim StartTime As Date, EndTime As Date, StartUpTime As Date
IsRunning = 0 ' returns 0 as default
For i = 5 To Sheets("MySheet").Range("SlutRow").Row
StartTime = Sheets("MySheet").Range("F" & i)
EndTime = Sheets("MySheet").Range("J" & i)
StartUpTime = StartTime + (10 / 24)' lægger 10 timer til starttid
SlowDownTimeTime = EndTime - (5 / 24)' trækker 5 timer fra sluttid
If Sheets("Gæringsplan IA").Range("C" & i) = Tank Then ' hvis udstyrsnummer passer med input
If StartTime <= TimeStamp Then ' hvis udstyr er startet
If EndTime >= TimeStamp Then ' hvis udstyr stadig kører
If TimeStamp <= StartUpTime Then ' hvis vi er under 10 timer i opstart
IsRunning = 40
Exit For
Else
IsRunning = 95
Exit For
End If
If SlowDownTime > TimeStamp Then ' hvis udstyr er i fase SlowDown (sidste 5 timer)
IsRunning = 30
Exit For
End If ' hvis SlowDown slutter
End If ' hvis stadig startet slutter
End If ' hvis startet slutter
End If ' hvis udstyrsnummer passer med input slutter
Next i
End Function
