kvanmiddelkoop
Gebruiker
- Lid geworden
- 12 aug 2015
- Berichten
- 7
Hallo, ik heb een functie geschreven in VBA die een berekening uitvoert op basis van 6 waarden. (getallen)
Indien deze cellen nog niet gevuld zijn dient de functie niet uitgevoerd te worden of de waarde "" te zijn.
Dit is de code die nu werkt maar dit is niet de meest efficiënte manier denk ikWie heeft er een betere oplossing:
Function fn_DeltaE_ab(L1, a1, b1, L2, a2, b2) As String
'*********************************************************************************************************************************
'Deze functie berekent het kleurverschil tussen 2 sets Lab-getallen
'volgens de CIE 1976 formule zoals beschreven in ISO 13655:20090 Annex K
'*********************************************************************************************************************************
If _
Not IsNumeric(L1) Or IsEmpty(L1) Or _
Not IsNumeric(a1) Or IsEmpty(a1) Or _
Not IsNumeric(b1) Or IsEmpty(b1) Or _
Not IsNumeric(L2) Or IsEmpty(L2) Or _
Not IsNumeric(a2) Or IsEmpty(a2) Or _
Not IsNumeric(b2) Or IsEmpty(b2) Then
fn_DeltaE_ab = ""
Else: fn_DeltaE_ab = ((L1 - L2) ^ 2 + (a1 - a2) ^ 2 + (b1 - b2) ^ 2) ^ 0.5
End If
End Function
Indien deze cellen nog niet gevuld zijn dient de functie niet uitgevoerd te worden of de waarde "" te zijn.
Dit is de code die nu werkt maar dit is niet de meest efficiënte manier denk ikWie heeft er een betere oplossing:
Function fn_DeltaE_ab(L1, a1, b1, L2, a2, b2) As String
'*********************************************************************************************************************************
'Deze functie berekent het kleurverschil tussen 2 sets Lab-getallen
'volgens de CIE 1976 formule zoals beschreven in ISO 13655:20090 Annex K
'*********************************************************************************************************************************
If _
Not IsNumeric(L1) Or IsEmpty(L1) Or _
Not IsNumeric(a1) Or IsEmpty(a1) Or _
Not IsNumeric(b1) Or IsEmpty(b1) Or _
Not IsNumeric(L2) Or IsEmpty(L2) Or _
Not IsNumeric(a2) Or IsEmpty(a2) Or _
Not IsNumeric(b2) Or IsEmpty(b2) Then
fn_DeltaE_ab = ""
Else: fn_DeltaE_ab = ((L1 - L2) ^ 2 + (a1 - a2) ^ 2 + (b1 - b2) ^ 2) ^ 0.5
End If
End Function