也许是一个简单的问题,但我仍然需要一些帮助来澄清公式:
有人能帮我一下吗?
TempCalc = CInt(TextBox3.Value) * (16*POWER(SQRT(CInt(TextBox1.Value)*(1-CInt(Textbox1.Value)))/(CInt(TextBox1.Value)*CInt(TextBox2.Value);2))怎么了,语法完全关闭了吗?
提前感谢
发布于 2021-07-09 08:47:25
在VBA中不存在函数POWER和SQRT。
Power(x, y)可以在VBA中用x ^ y
sqrt is sqr代替。因此,以下几点应能奏效:
TempCalc = CLng(TextBox3.Value) * (16 * ((Sqr(CLng(TextBox1.Value) * 1 - CLng(TextBox1.Value))) / (CLng(TextBox1.Value) * CLng(TextBox2.Value))) ^ 2)我建议使用Long将整数转换为CLng,因为使用Integer没有好处。
因此,为了便于调试,我建议拆分计算:
Dim SqrtVal As Double
SqrtVal = Sqr(CLng(TextBox1.Value) * 1 - CLng(TextBox1.Value))
Dim DivVal As Double
DivVal = (CLng(TextBox1.Value) * CLng(TextBox2.Value))
Dim PowerVal As Double
PowerVal = (SqrtVal / DivVal) ^ 2
Dim TempCalc As Double
TempCalc = CLng(TextBox3.Value) * 16 * PowerValhttps://stackoverflow.com/questions/68313752
复制相似问题