есть такая рабочая функция, в которой периодически вылетает ошибка что переменная Q должна быть либо Variant либо Object, никто не знает в чем косяк? и в какую сторону копать:
Код |
---|
Function Д_ГлубинаКОНДитерации1(ДНКТ As Single, Д_г As Single, Гл As Single, Д As Single, Т As Single, Т_г As Single, П_по_в As Single, Кр_Д As Single, Кр_Т As Single, кол_итераций As Integer) As Single Dim Pn As Single Dim Tplast As Single Dim Tust As Single Dim Pust As Single Dim L As Single Dim Re As Single Dim Den As Single Dim Q As Single Dn = ДиНКТ Q = Д_г Hperf = Гл Pust = Д Tust = Т Tplast = Т_г DensVoz = П_по_в Den = в Tn = Tsred(Tplast, Tust) Zn = z_real(Pust / Кр_Д, Tn / Кр_Т) Den = ((0.5173 * 10 ^ (-6) * ((1 + 0.678 * (1.104 - 0.25 * 0.678))) * (Tn / Кр_Т * (1 - 0.1038 * Tn / Кр_Т + 0.037) * (1 + (Pn / Кр_Д) ^ 2 / (30 * Tn / Кр_Т - 1)))) * 10000) Re = 1777 * (Q * DensVoz) / (Dn * Den) L = 1 / (4 * (Log(5.62 / Re ^ 0.9 + 7.41 / (2 * 0.03 / 10 / Dn))) ^ 2) Pn = (((Pust ^ 2) * Exp(2 * ((Hperf * 0.03415 * DensVoz) / (Zn * Tn)))) + 0.000000000001413 * L * (Zn ^ 2 * Tn ^ 2 / Dn ^ 5) * (Exp(2 * ((Hperf * 0.03415 * DensVoz) / (Zn * Tn))) - 1) * Q ^ 2) ^ 0.5 For i = 1 To кол_итераций Pn = 2 / 3 * (Pn + Pust ^ 2 / (Pust + Pn)) Zn = z_real(Pn / Кр_Д, Tn / Кр_Т) Д_ГлубинаКОНДитерации1 = (((Pust ^ 2) * Exp(2 * ((Hperf * 0.03415 * DensVoz) / (Zn * Tn)))) + 0.000000000001413 * L * (Zn ^ 2 * Tn ^ 2 / Dn ^ 5) * (Exp(2 * ((Hperf * 0.03415 * DensVoz) / (Zn * Tn))) - 1) * Q ^ 2) ^ 0.5 Pn = Д_ГлубинаКОНДитерации1 Next i End Function |