В VB я начинающий только...
Тут изучал макрос и попытался адаптировать его код на лист excel...
Ну, чтобы в будущем обходиться без макроса вообще
Вроде все логично свиду, но на практике результат макроса и листа excel дают разный результат
Чтобы было яснее...
У меня есть макро-функция:
- Код: Выделить всё
Function Ps(T)
' T=-20
If T > 0 Then
T = 273.15 + T
A = -5800.2206
B = 1.391499
C = -0.048640239
d = 0.000041764768
e = -0.000000014452093
f = 6.545967
Ps = Exp(A / T + B + C * T + d * T * T + e * T * T * T + f *Log(T))
Else
T = 273.15 + T
G = -5674.5359
h = 6.3925247
K = -0.009677843
l = 0.000000622115701
ll = 2.0747825E-09
N = -9.484024E-13
p = 4.1635019
Ps = Exp(G / T + h + K * T + l * T * T + ll * T * T * T + N * T * T * T * T + p * Log(T))
End If
End Function
'может быть разнится по возврату значения с excel-евскими LOG() EXP()?
Попытался получить тот же эффект на листе, применив:
- Код: Выделить всё
...
=exp(($B$13/G4+$B$14+$B$15*G4+$B$16*G4^2+$B$17*G4^3+$B$18*LOG(G4)))
где под абсолютными - это константы, выведенные на лист.
Не понимаю причины. Макрос дает результат: 103,26
На листе через адаптацию получается: 0
При этом на листе вот эта формула: G / T + h + K * T + l * T * T + ll * T * T * T + N * T * T * T * T + p * Log(T)
всегда получает отрицательное значение
Может она и должна получать отрицательное, но почему-то макрос с этим как-то справляется
В общем ситуация странная получается.
Можно ли вконец избавиться от этого макроса? Log() и Exp() в макросах отличаются ли функциональностью от excel-евских LOG() И EXP()? Может в этом дело?
В общем, ребята, что может выдавать разный результат?