日期:2012-11-04  浏览次数:20507 次

这是我的代码,请帮我看看哪有问题:(我是要用数组作个计算器)
Option Explicit
Dim shu1 As Double, shu2 As Double '先后输入的两个数
Dim result As Double '做了运算的结果
Dim process, process0, process1, process2, process3, process4 As Variant '保存数1与各个运算符的过程
Dim judge As Variant '判断按了那个运算符

Private Sub Command1_Click(Index As Integer) '0-9数字键
Text1.Text = Text1.Text & Index
Text1.SetFocus
End Sub

Private Sub Command1_KeyPress(Index As Integer, KeyAscii As Integer) '阻止键盘输入,不过不知为什么没有用
KeyAscii = 0
End Sub

Private Sub Command2_Click(Index As Integer) ' "."键
Text1.Text = Text1.Text & "."
End Sub

Private Sub Command3_Click() '退格键
If Text1.Text = "" Then
Exit Sub
End If
Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
End Sub

Private Sub Command4_Click() '清除键
Text1.Text = ""
End Sub

Private Sub Command5_Click(Index As Integer) '做运算,总觉得逻辑上哪有问题
shu1 = Val(Text1.Text)
process = shu1
Text1.Text = ""
If judge = Command5(0) Then
process0 = shu1 + Command(0)
ElseIf judge = Command5(1) Then
process1 = shu1 + Command5(1)
ElseIf judge = Command5(2) Then
process2 = shu1 + Command(2)
ElseIf judge = Command5(3) Then
process3 = shu1 + Command5(3)
End If
shu2 = Val(Text1.Text)
End Sub

Private Sub Command6_Click() '等号
result = process + shu2
Text1.Text = result
If process0 Then
result = shu1 + shu2
ElseIf process1 Then
result = shu1 - shu2
ElseIf process2 Then
result = shu1 * shu2
ElseIf process3 Then
result = shu1 / shu2
End If
End Sub

Private Sub Text1_Change()
If judge = False Then
shu2 = Val(Text1.Text)
End If
Text1.SetFocus
End Sub