Простите Udik, как раз в этом и был вопрос. Я не умел "писать функцию". Но после ответа buchlotnik, "научился"... Михаил, как всегда, "респект и уважуха"... buchlotnik, по поводу "зачем" - чуть позже...
Простите Udik, как раз в этом и был вопрос. Я не умел "писать функцию". Но после ответа buchlotnik, "научился"... Михаил, как всегда, "респект и уважуха"... buchlotnik, по поводу "зачем" - чуть позже...Юрий_Нд
Public Function Теплоот_гориз_труб(t_вод, t_пом, d_труб, A1, пок_степ_d, пок_степ_ф) Dim dн, O, f, a2, a3, a, dq
' Function Теплоот_гориз_труб функция расчета теплоотдачи горизонтально проложенных труб ' t_вод - температура теплоносителя (воды) в начале участка, град Цельсия ' t_пом - температура воздуха в помещении, град Цельсия ' d_труб - наружный диаметр труб, мм ' A1 - числовой коэффициент в начале формулы ' пок_степ_d - показатель степени для диаметра ' пок_степ_ф - показатель степени для дроби
'Подготовительные расчеты dн = d_труб / 1000 'Перевод из м. в мм. O = t_вод - t_пом 'Определение температурного напора f = 3.1415 * dн ^ 2 / 4 'Расчет наружной поверхности 1 м. горизонтальных труб a2 = пок_степ_d 'показатль степени диаметра a3 = пок_степ_ф 'показатль степени дроби
'Основной блок a = A1 * (O / dн ^ a2) ^ a3 'Расчет коэффициента теплоотдачи горизонтальных труб dq = a * f * O 'Расчет теплоотдачи горизонтальных труб
А это пока не самый сложный пример. И формула "простенькая", и логики здесь нет... (Видел я как "один умелец запихнул" интерполяцию по таблице в одну строчку. Ужас!) Ваше мнение? Одобряете?
Public Function Теплоот_гориз_труб(t_вод, t_пом, d_труб, A1, пок_степ_d, пок_степ_ф) Dim dн, O, f, a2, a3, a, dq
' Function Теплоот_гориз_труб функция расчета теплоотдачи горизонтально проложенных труб ' t_вод - температура теплоносителя (воды) в начале участка, град Цельсия ' t_пом - температура воздуха в помещении, град Цельсия ' d_труб - наружный диаметр труб, мм ' A1 - числовой коэффициент в начале формулы ' пок_степ_d - показатель степени для диаметра ' пок_степ_ф - показатель степени для дроби
'Подготовительные расчеты dн = d_труб / 1000 'Перевод из м. в мм. O = t_вод - t_пом 'Определение температурного напора f = 3.1415 * dн ^ 2 / 4 'Расчет наружной поверхности 1 м. горизонтальных труб a2 = пок_степ_d 'показатль степени диаметра a3 = пок_степ_ф 'показатль степени дроби
'Основной блок a = A1 * (O / dн ^ a2) ^ a3 'Расчет коэффициента теплоотдачи горизонтальных труб dq = a * f * O 'Расчет теплоотдачи горизонтальных труб
А это пока не самый сложный пример. И формула "простенькая", и логики здесь нет... (Видел я как "один умелец запихнул" интерполяцию по таблице в одну строчку. Ужас!) Ваше мнение? Одобряете?
п.с. Не нашел в Экселе "латыни". "Она есть"?Юрий_Нд
Сообщение отредактировал Юрий_Нд - Пятница, 28.04.2017, 04:02
Видел я как "один умелец запихнул" интерполяцию по таблице в одну строчку. Ужас!
ну я из таких "умельцев"
Цитата
Ваше мнение?
И не такое запихнём, ЗАТО работать оно будет в разы быстрей любой UDF-ки.
Код
*3,1415
что за жесть? даже если не
Код
*ПИ()
, то почему 15? там же 3,1415926. А по функции - ну если очень надо, да и тем более переменные объявляете, потрудитесь хотя бы тип данных указать [vba]
Код
Public Function Теплоот_гориз_труб(t_вод as Double, t_пом as Double, d_труб as Double, A1 as Double, пок_степ_d as Double, пок_степ_ф as Double) as Double Dim dн as Double, O as Double, f as Double, a2 as Double, a3 as Double, a as Double, dq as Double
[/vba]
Пы. сы. а я бы для повышения читаемости не на функции заморачивался, а на именованные диапазоны :
Видел я как "один умелец запихнул" интерполяцию по таблице в одну строчку. Ужас!
ну я из таких "умельцев"
Цитата
Ваше мнение?
И не такое запихнём, ЗАТО работать оно будет в разы быстрей любой UDF-ки.
Код
*3,1415
что за жесть? даже если не
Код
*ПИ()
, то почему 15? там же 3,1415926. А по функции - ну если очень надо, да и тем более переменные объявляете, потрудитесь хотя бы тип данных указать [vba]
Код
Public Function Теплоот_гориз_труб(t_вод as Double, t_пом as Double, d_труб as Double, A1 as Double, пок_степ_d as Double, пок_степ_ф as Double) as Double Dim dн as Double, O as Double, f as Double, a2 as Double, a3 as Double, a as Double, dq as Double
[/vba]
Пы. сы. а я бы для повышения читаемости не на функции заморачивался, а на именованные диапазоны :