He creado una función excel que dice lo siguiente

Public Function clasif(A As Double) As Byte
    If (A >= 21.926 And A <= 24.033) Then
        clasif = 1
        Exit Function
    End If
    If (A > 24.033 And A <= 26.667) Then
        clasif = 2
        Exit Function
    End If
    If (A > 26.667 And A <= 29.301) Then
        clasif = 3
        Exit Function
    End If
    clasif = 0
End Function

la cual funciona bien , pero me gustaria que en lugar que los valores numericos , los leyera de una celda

If (A >= 21.926 And A <= 24.033) Then

Que en lugar de escribir 21926 y 24033, apareciera el valor de las celdas, A1, B1

Quedara algo así

f (A >= A1 And A <=B1) Then

Como lo hago

2 respuestas

Respuesta
1

Pero entonces necesitas 6 celdas para poner los diferentes rangos, algo como esto:

Public Function clasif(A As Double) As Byte
  clasif = 0
  If A >= Range("A1") And A <= Range("B1") Then clasif = 1
  If A > Range("A2") And A <= Range("B2") Then clasif = 2
  If A > Range("A3") And A <= Range("B3") Then clasif = 3
End Function

La macro quedaría así:

Respuesta
1

Yo pasaría todos los valores de parámetro así:

Public Function clasif(A As Double, infimo as Double, segundo As Double, _
  tercero As Double, supremo As Double) As Byte
  clasif = 0
  If A >= infimo And A <= segundo Then clasif = 1
  If A > segundo And A <= tercero Then clasif = 2
  If A > tercero And A <= supremo Then clasif = 3
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas