Fejl i brugerdefineret function
Hej venner på Eksperten.dkJeg sider og skriver min egen function, men allerede ved første test får jeg fejlen "User-defined type not defined", og første linie i functionen er markeret blå i VBA-editorens DeBugger.
Her er min function, og jeg har prøvet at holde den så enkelt som muligt i første test.
Jeg har også forsøgt at kommentere undervejs så det er til at finde ud af hvad den skal gøre.
Function InProduction(RequestDate As Date, StartDateArray As Variant, EndDateArray As varinat)
' function skal teste om RequestDate er større end starttidspunkt og mindre end sluttidstpunkt - for så er vi i produktion
Dim SDate As Date
Dim EDate As Date
InProduction = 0 ' sætter defaultværdi til 0 , så function returenerer 0 hvis der ikke blev fundet nogen produktion på RequestDate
For i = 1 To UBound(StartDateArray, 1) ' vi løber vores StartDateArray igennem med en For-løkke
If IsDate(StartDateArray(i, 1)) Then
SDate = StartDateArray(i, 1) ' hvis der findes en startdato i StartDateArray, så putter vi værdien i variablen SDate
EDate = EndDateArray(i, 1) ' og så står slutdato på samme plads i EndDateArray
If RequestDate > SDate Then ' hvis større end starttidspunkt
If RequestDate < EDate Then ' hvis større end starttidspunkt og mindre end sluttidstpunkt - så er vi i produktion
InProduction = 1 ' og vi vil returnere værdien 1
End If ' hvis vi er i prod slutter
End If ' hvis større end starttidspunkt slutter
End If ' hvis der findes en dato slutter
Next i
End Function
' function skal teste om RequestDate er større end starttidspunkt og mindre end sluttidstpunkt - for så er vi i produktion
Dim SDate As Date
Dim EDate As Date
InProduction = 0 ' sætter defaultværdi til 0 , så function returenerer 0 hvis der ikke blev fundet nogen produktion på RequestDate
For i = 1 To UBound(StartDateArray, 1) ' vi løber vores StartDateArray igennem med en For-løkke
If IsDate(StartDateArray(i, 1)) Then
SDate = StartDateArray(i, 1) ' hvis der findes en startdato i StartDateArray, så putter vi værdien i variablen SDate
EDate = EndDateArray(i, 1) ' og så står slutdato på samme plads i EndDateArray
If RequestDate > SDate Then ' hvis større end starttidspunkt
If RequestDate < EDate Then ' hvis større end starttidspunkt og mindre end sluttidstpunkt - så er vi i produktion
InProduction = 1 ' og vi vil returnere værdien 1
End If ' hvis vi er i prod slutter
End If ' hvis større end starttidspunkt slutter
End If ' hvis der findes en dato slutter
Next i
End Function
Nogen der kan hjælpe med havd der går galt?
