2012-05-28 34 views
1

使用微距形式​​两个数字我想创建的Excel宏一部分的形式。我创建了一个,它有三个文本框。第一个文本框用于第一个数字,第二个用于输入第二个数字,最后一个是结果。我创建了一个名为Calculate的按钮。总和在Excel

我使用此代码为TextBox1的:

Private Sub TextBox1_Change() 
Dim a As Integer 
a = Val(TextBox1.Text) 
End Sub 

这对于TextBox2中:

Private Sub TextBox2_Change() 
Dim b As Integer 
b = Val(TextBox2.Text) 
End Sub 

,我有一个按钮,显示结果

Private Sub CommandButton1_Click() 
Dim c As Integer 
c = a + b 
MsgBox (c) 
End Sub 

觉得我进入1为textbox1和2为textbox2,1 + 2将3,但在消息框中,我会看到0.为什么它是这样的?

+0

你尝试过什么?在互联网上简单的搜索应该告诉你如何编写VBA代码来做到这一点 - 当你被困住时,StackOverflow更多的是帮助,而不是当你还没有尝试编写代码时。 – aevanko

+0

@Issun我已更新第一篇文章 – Nofuzy

+0

已添加答案。希望能帮助到你。 :) – aevanko

回答

3

我不会分配箱的变量赋值(除非它们是全局变量,变量生活的范围是常规的,所以变量将子(后死亡),每个已经结束,当命令按钮事件发生时,变量不再存在),直接引用它们。只需将它添加到您的命令按钮中即可完成这项工作。

Private Sub CommandButton1_Click() 

MsgBox(TextBox1.Value + TextBox2.Value) 

End Sub 
+1

当然,您可以添加数据验证以确保它们是数字:)关于表单的好处是可以随时读取部分的值^^ – aevanko

0

的变量声明必须是在一般情况下,它不应该是下分...


Dim a As Integer 
Dim c As Double 
Dim b As Integer 

Private Sub CommandButton1_Click() 
c = a + b 
MsgBox (c) 

End Sub 

Private Sub TextBox1_Change() 
a = Val(TextBox1.Text) 
End Sub 

Private Sub TextBox2_Change() 
b = Val(TextBox2.Text) 
End Sub 
-1
Private Sub Calculate_Click() 
Dim a As Integer 
Dim b As Integer 
Dim c As Integer 
a = Val(`TextBox1.Text`) 
b = Val(`TextBox2.Text`) 
c = a + b 
MsgBox (c) 
End Sub