2015-12-07 178 views
-1

如果有人可以帮助简单计算使用VBA,我将不胜感激。我现在的情况是,我想作一个简单的计算如下VBA计算 - 简单计算

area = inner_dia * height 

当过我的inner_dia,50和高度,50进入,正确的答案应该2,500;但是我的答案是15,300。请帮助我哪里出了错,我从哪里可以学到更多,使使用VBA(如使用自然对数,PI等)

预先感谢您

+0

将是有益的,如果你要提供你所使用的全部代码。 –

+0

请显示您的类型定义(您的'Dim'语句) – ja72

+0

可能的相关问题:http://stackoverflow.com/q/31816396/380384 – ja72

回答

0

写在即时窗口中复杂的计算:

inner_dia = 50 
height = 50 
area = inner_dia * height 
?area 

编辑: CommandButton1的是命令按钮 tb_height的名称和tb_inner_dia是文本框。

Option Explicit 

Private Sub CommandButton1_Click() 
    MsgBox tb_height.Value * tb_inner_dia.Value 
End Sub 
+0

感谢您的帮助。但是我忘了提及我正在创建一个用户表单,因此它需要用户将值输入到高度文本框和inner_dia文本框中。我需要配置文本框吗? – takiyasamsama

+0

'inner_dia = 50'强制类型为16位整数。更好的方法是'inner_dia = 50#'和'height = 50#'来强制浮点数。 – ja72

+0

嗨,大家好。我似乎发现了一个非常奇怪的解决方案来解决我自己的问题。我发现将我的文本框命名为“高度”是问题所在。我对问题进行了故障排除,并将文本框名称从“高度”更改为“hei”,并且计算没有问题。有人能向我强调什么似乎是问题?在将我的文本框命名为高度时是否有任何限制? – takiyasamsama

0

您的文本框会返回字符串值。您需要将字符串转换为浮点数,然后进行计算,然后格式化答案。

见下文实例:

Dim inner_dia as Double, height as Double 
inner_dia = Val(TextBox1.Text) 
height = Val(TextBox2.Text) 

Dim result as Double 
result = inner_dia * height 

TextBox3.Text = Format(result, "0.000")