Я очень плохо знаком с VBA и хотел бы получить отзыв об ошибке переполнения, с которой я сталкиваюсь при запуске своего кода.Я объявил все переменные как Double (так как я имею дело с большими числами), каждый Sub представляет свой набор уравнений, используемых для решения проблемы, которую я пытаюсь решить.Эти значения затем печатаются в рабочем листе Excel с помощью команды «Range.value».Концепция кода очень проста - в основном, вставляя значения из электронной таблицы и вычисляя результат.Любая помощь будет принята с благодарностью.
Скриншот листа Excel
Option Explicit
Dim T, m, d, xb, bh, bd, bm, Th, Tv, phi, L, B, bdr, w, s, a, Pi, h, X1, X2 As Double
Sub Thoriz(T, w, d, Th)
'To calculate the horizontal force on the anchor
Th = T - (w * d)
End Sub
Sub Angle(Th, T, phi, X1)
'To calculate the angle of catenary at connection
X1 = Th / T
phi = Atn(-X1 / Sqr(-X1 * X1 + 1)) + 2 * Atn(1)
End Sub
Sub Tvert(T, phi, s, w, Tv)
'To calculate the total line length
Tv = T * Sin(phi)
s = Tv / w
End Sub
Sub spreadlength1(a, s, d, h, X2)
'To calculate the total spread length
a = ((s ^ 2) - (d ^ 2)) / (2 * d)
X2 = 1 + d / a
h = a * ((Exp(X2) + Exp(–X2)) / 2)
End Sub
Sub spreadlength(B, xb, h)
'Spread length
B = 2 * (xb + h)
End Sub
Sub Caculations()
'INPUTTING OF VALUES
T = Range("D3").Value
m = Range("D4").Value
d = Range("D5").Value
xb = Range("D6").Value
bh = Range("D7").Value
bd = Range("D8").Value
bm = Range("D9").Value
'CALCULATIONS
'Calculating the Horizontal force on the anchor
Call Thoriz(T, w, d, Th)
'Calculating the angle of catenary at the connection
Pi = 3.1415926536 'Defining the value of Pi
phi = phi * 180 / (Pi) 'Conversion of rad to deg
Call Angle(Th, T, phi, X1)
'Calculating the total line length
Call Tvert(T, phi, s, w, Tv)
'Calculating the spread length
Call spreadlength1(a, s, d, h, X2)
Call spreadlength(B, xb, h)
'OUTPUTTING OF VALUES
Range("D13").Value = Th
Range("D14").Value = phi
Range("D15").Value = L
Range("D16").Value = B
Range("D17").Value = bdr
End Sub