es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de valor UDF para función iterativa compleja

Quiero crear una UDF para mi hoja de cálculo de Excel. Sin embargo, cuando selecciono mi entrada para la UDF, obtengo un error de valor. ¿Alguien puede ayudarme?

Código e imágenes a continuación:

Código:

Public Function diametrotuberia(Pth As Double) As Double

Dim D As Double

p = 150
Tv = 30
T = 55
k = 0.000045
vi = 4
a = (1.729 * (10 ^ (-6))) / ((1 + (T / 25)) ^ 1.165)
rho = 988
Cp = 4180

di = 1
i = 1

While i <= 10
v = 4 * Pth / (3.14 * di ^ 2 * Cp * rho * Tv)
Re = v * di / vi
B1 = (0.774 * Log(Re) - 1.41) / (1 + 1.32 * Sqr(k / di))
B2 = ((k * Re) / (3.7 * di)) + (2.51 * B1)
Y = (B1 - ((B1 + (2 * (Log(B2 / Re) / Log(10)))) / (1 + (2.18 / B2)))) ^ (-2)

D = (((8 * Y) / (p * rho)) * ((Pth) / (3.14 * Cp * Tv)) ^ 2) ^ 0.2


di = D
i = i + 1
Wend

diametrotuberia = D
End Function

Imagen

Tags:  ,

Answer

  1. Avatar for davy.ai

    Basado en el código e imagen proporcionados, no está claro cuál es la entrada que estás seleccionando para tu UDF y qué error de valor estás encontrando. Algunos problemas potenciales que podrían estar causando un error de valor incluyen:

    1. El valor de entrada para tu UDF puede estar fuera del rango válido para los cálculos en tu función. Por ejemplo, si Pth es negativo, esto podría causar problemas con los cálculos logarítmicos en el bucle.
    2. Tu UDF puede estar devolviendo un valor que es demasiado grande o demasiado pequeño para mostrarse en la celda. Excel tiene limitaciones en el tamaño y precisión de los números que se pueden mostrar en una celda.

    Para solucionar el problema de manera más exhaustiva, podrías intentar lo siguiente:

    1. Verifica los valores de entrada que estás utilizando para tu UDF para asegurarte de que estén dentro del rango válido.

    2. Muestra los cálculos intermedios en tu UDF usando instrucciones Debug.Print para determinar dónde puede estar ocurriendo el error.

    3. Prueba tu UDF con diferentes valores de entrada para ver si el error es consistente o solo ocurre para ciertos valores.

    4. Considera utilizar un enfoque o algoritmo diferente para calcular el resultado deseado si el problema no se puede resolver.

Comments are closed.