04. marts 2002 - 15:59Der er
2 kommentarer og 1 løsning
3-dimentionel matrix i VBA.
Jeg har nørklet med at skrive en kode der kan returnere en værdi afhængig af 3 variable, MEN den virker desværre ikke korrekt!! Koden ser indtil videre sådan ud:
Dim SV As Double, OD As Double, EI As Double, Krav As Double SV = Range("Solvensvægt").Value OD = Range("OverdækPct").Value EI = Range("EstIndtj").Value
If EI <= 0.02 And OD <= 0.25 Then If SV = 0 Then Krav = 1.25 If SV > 0 And SV <= 0.2 Then Krav = 1.5 If SV > 0.2 And SV <= 0.5 Then Krav = 1.75 If SV > 0.5 Then Krav = 2
ElseIf EI > 0.02 And EI <= 0.025 And OD > 0.25 And OD <= 0.5 Then If SV = 0 Then Krav = 1.25 If SV > 0 And SV <= 0.2 Then Krav = 1.25 If SV > 0.2 And SV <= 0.5 Then Krav = 1.5 If SV > 0.5 Then Krav = EI * 100
ElseIf EI > 0.025 And EI <= 0.03 And OD > 0.5 And OD <= 0.75 Then If SV = 0 Then Krav = 1 If SV > 0 And SV <= 0.2 Then Krav = 1 If SV > 0.2 And SV <= 0.5 Then Krav = 1.25 If SV > 0.5 Then Krav = EI * 100
ElseIf EI > 0.03 And OD > 0.75 Then If SV = 0 Then Krav = 1 If SV > 0 And SV <= 0.2 Then Krav = 1 If SV > 0.2 And SV <= 0.5 Then Krav = 1.25 If SV > 0.5 Then Krav = EI * 100 End If Range("SvMarginal").Value = Format(Krav / 100, "0.00%")
Jeg håber der sidder en haj derude som kan og vil hjælpe mig!
Et bud:Dim SV As Double, OD As Double, EI As Double, Krav As Double SV = Range("Solvensvægt").Value OD = Range("OverdækPct").Value EI = Range("EstIndtj").Value Krav = 1 If (EI <= 0.02 And OD <= 0.25) Then Select Case SV Case 0: Krav = 1.25 Case 0 To 0.2: Krav = 1.5 Case 0.201 To 0.5: Krav = 1.75 Case Is > 0.5: Krav = 2 End Select
ElseIf (EI > 0.02 And EI <= 0.025) And (OD > 0.25 And OD <= 0.5) Then Select Case SV Case 0: Krav = 1.25 Case 0 To 0.2: Krav = 1.25 Case 0.201 To 0.5: Krav = 1.5 Case Is > 0.5: Krav = EI * 100 End Select
ElseIf EI > 0.025 And EI <= 0.03 And OD > 0.5 And OD <= 0.75 Then Select Case SV Case 0: Krav = 1.25 Case 0 To 0.2: Krav = 1.25 Case 0.201 To 0.5: Krav = 1.5 Case Is > 0.5: Krav = EI * 100 End Select
ElseIf EI > 0.03 And OD > 0.75 Then Select Case SV Case 0: Krav = 1.25 Case 0 To 0.2: Krav = 1.25 Case 0.201 To 0.5: Krav = 1.5 Case Is > 0.5: Krav = EI * 100 End Select End If Range("SvMarginal").Value = Format(Krav / 100, "0.00%")
Jeg synes nu den kører helt godt, jeg havde bare sat værdierne lidt forkert. :-)
Dim SV As Double, OD As Double, EI As Double, Krav As Double SV = Range("Solvensvægt").Value OD = Range("OverdækPct").Value EI = Range("EstIndtj").Value Krav = 0 If (EI <= 0.02 And OD <= 0.25) Then Select Case SV Case 0: Krav = 1.25 Case 0 To 0.2: Krav = 1.5 Case 0.201 To 0.5: Krav = 1.75 Case Is > 0.5: Krav = 2 End Select
ElseIf (EI > 0.02 And EI <= 0.025) And (OD > 0.25 And OD <= 0.5) Then Select Case SV Case 0: Krav = 1.25 Case 0 To 0.2: Krav = 1.25 Case 0.201 To 0.5: Krav = 1.5 Case Is > 0.5: Krav = EI * 100 End Select
ElseIf EI > 0.025 And EI <= 0.03 And OD > 0.5 And OD <= 0.75 Then Select Case SV Case 0: Krav = 1 Case 0 To 0.2: Krav = 1 Case 0.201 To 0.5: Krav = 1.25 Case Is > 0.5: Krav = EI * 100 End Select
ElseIf EI > 0.03 And OD > 0.75 Then Select Case SV Case 0: Krav = 1 Case 0 To 0.2: Krav = 1 Case 0.201 To 0.5: Krav = 1.25 Case Is > 0.5: Krav = EI * 100 End Select End If
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.