VBA Troubleshooting

VBA Troubleshooting

I need someone to trouble shoot this code. The button needs to be automated. I think the idea of the button is to initiate the code with one click. There are also some problems with the code and it doesn’t run. If someone could help troubleshoot that it would be appreciated 

 PLEASE ask me if there is anything unclear in the code or anything like that. I realize it’s a little complicated since it’s for a drilling engineering class but I can clarify if need be. Ask and I will get back to you within an hour

Code is pasted below. I will email my spreadsheet once I am set on a tutor

————

Option Explicit

Function log10(x As Double) As Double

log10 = log(x) / log(10)

End Function

Function PLossInside_f(Q As Double, ID As Double) As Double

    Dim MW As Double, A As Double, B As Double, C As Double

    MW = Worksheets(“Mud Data”).Cells(2, 2).Value

    A = Worksheets(“Mud Data”).Cells(5, 6).Value

    B = Worksheets(“Mud Data”).Cells(6, 6).Value

    C = Worksheets(“Mud Data”).Cells(7, 6).Value

    Dim n As Double, R As Double, T_guess As Double, K_v As Double, x As Double

    Dim delP As Double, T_new As Double, Tol As Double

    Dim f_p As Double, k_p As Double

    Dim v As Double, N_p As Double, AA As Double, L As Double, BB As Double, Y As Double, fric As Double

    Dim diff As Double, i As Integer, h As Double, k As Double

   

    R = 25

    n = B + 2 * C * log(R)

    T_guess = Exp(A + B * log(R) + C * log(R) ^ 2)

    Tol = 0.0005

    diff = 1

    i = 1

Do While (diff > Tol) And (i < 30)

    h = 1 / (2 * C)

    k = ((B ^ 2) + (4 * C) * (log(T_guess) – A)) ^ (1 / 2)

    R = Exp(h * ((-B)  k))

    n = B + 2 * C * log(R)

    x = (0.123 / n) / (1 – (1.0678) ^ ((-2) / n))

    K_v = 0.01066 * T_guess / (1.703 * R) ^ n

    f_p = ((3 * n + 1) / (4 * n * x)) ^ n

    k_p = f_p * K_v

    v = Q / (2.45 * (ID ^ 2))

    N_p = (1.86 / k_p) * ((ID / 96) ^ n) * (v ^ (2 – n)) * MW

    AA = (log10(n) + 3.93) / 50

    L = 3470 – 1370 * n

    BB = (1.75 – log10(n)) / 7

    Y = 4270 – 1370 * n

   

    If (N_p <= L) Then

        fric = 16 / N_p

        ‘Shows laminar flow regime

    ElseIf (N_p >= Y) Then

        fric = AA / N_p ^ BB

        ‘Shows turbulent flow regime

    Else

        fric = ((N_p – L) / 800) * (AA / Y ^ BB – 16 / L) + 16 / L

    End If

    delP = (fric * MW * v ^ 2) / (25.8 * ID)

    T_new = 281.4 * delP * ID

    diff = Abs(T_new – T_guess)

    T_guess = T_new

    i = 1 + i

Loop

PLossInside_f = delP

End Function

Function PLossAnnular_f(Q As Double, OD As Double, HD As Double) As Double

    Dim MW As Double, A As Double, B As Double, C As Double

    MW = Worksheets(“Mud Data”).Cells(2, 2).Value

    A = Worksheets(“Mud Data”).Cells(5, 6).Value

    B = Worksheets(“Mud Data”).Cells(6, 6).Value

    C = Worksheets(“Mud Data”).Cells(7, 6).Value

    Dim n As Double, R As Double, T_guess As Double, K_v As Double, x As Double, T_new As Double, Tol As Double

    Dim v As Double, N_a As Double, AA As Double, BB As Double, L As Double, Y As Double, delP As Double

    Dim fric As Double, diff As Double, i As Integer, h As Double, k As Double, f_a As Double, k_a As Double

   

    R = 25

    n = B + 2 * C * log(R)

    T_guess = Exp(A + B * log(R) + C * log(R) ^ 2)

    Tol = 0.0005

    diff = 1

    i = 1

Do While (diff > Tol) And (i < 30)

    h = 1 / (2 * C)

    k = ((B ^ 2) + (4 * C) * (log(T_guess) – A)) ^ (1 / 2)

    R = Exp(h * ((-B) + k))

    n = B + 2 * C * log(R)

    x = (0.123 / n) / (1 – (1.0678) ^ ((-2) / n))

    K_v = 0.01066 * T_guess / (1.703 * R) ^ n

    f_a = ((2 * n + 1) / (3 * n * x)) ^ n

    k_a = f_a * K_v

    v = Q / (2.45 * (HD ^ 2 – OD ^ 2))

    N_a = (2.79 / k_a) * (((HD – OD) / 144) ^ n) * (v ^ (2 – n)) * MW

    AA = (log10(n) + 3.93) / 50

    L = 3470 – 1370 * n

    BB = (1.75 – log10(n)) / 7

    Y = 4270 – 1370 * n

   

    If (N_a <= L) Then

        fric = 24 / N_a

        ‘shows laminar flow regime

    ElseIf (N_a >= Y) Then

        fric = AA / N_a ^ BB

        ‘shows turbulent flow regime

    Else

        fric = ((N_a – L) / 800) * (AA / Y ^ BB – 24 / L) + 24 / L

    End If

    delP = (fric * MW * v ^ 2) / (25.8 * (HD – OD))

    T_new = 281.4 * (HD – OD) * delP

    diff = Abs(T_new – T_guess)

    T_guess = T_new

    i = 1 + i

Loop

PLossAnnular_f = delP

End Function

amery_311project3.xlsm

"You need a similar assignment done from scratch? Our qualified writers will help you with a guaranteed AI-free & plagiarism-free A+ quality paper, Confidentiality, Timely delivery & Livechat/phone Support.


Discount Code: CIPD30



Click ORDER NOW..

order custom paper