VB编时遇到一个问题,谢谢.

来源:百度知道 编辑:UC知道 时间:2024/05/26 23:10:42
Private Sub Command1_Click(Index As Integer)
Dim Xa#, Ya#, Xb#, Yb#, detX#, tana#, ab#, du%, fen%, miao%, s#
Const Pi = 3.14159265358979
Xa = Val(txtXa.Text): Ya = Val(txtYa.Text)
Yb = Val(txtXb.Text): Yb = Val(txtYb.Text)
detX = Xb - Xa: detY = Yb - Ya
If Abs(detX) < 0.00000001 Then
MsgBox "除数为零,请检查坐标输入是否正确!"
txtXa.SetFocus
Exit Sub
End If
s = Sqr(detX * detX + detY * detY)
If Abs(detX) < 0.000001 Then
If detY > 0 Then
ab = 90
Else
ab = 270
End If
Else
tana = datY / datX
ab = Atn(tana) '得到的是弧度
ab = ab * 180 / Pi
If detX < 0 Then
ab = 180 + ab
ElseIf detX > 0 And detY < 0 Then
ab = 360 + ab
End If
End If
du = Fix(ab): ab = (ab - du) * 60
fen = Fix(ab): ab = (ab - fen) * 60
miao = Fix(ab)
txtDu = Trim(Str(du)): txtFen = Trim(Str(fen)): txtMiao = Trim(Str(miao))
txtS.Text = Trim(Format(s, "

变量太混乱,建议整理下,你是否没有开启 要求变量声明,这样的话会造成
很多不必要的因变量名错误引起的错误

我按程序理解改变了几个变量名称,测试没问题

Dim Xa#, Ya#, Xb#, Yb#, detX#, tana#, ab#, du%, fen%, miao%, s#
Const Pi = 3.14159265358979
Xa = Val(txtxa.Text): Ya = Val(txtya.Text)
Xb = Val(txtxb.Text): Yb = Val(txtyb.Text)
detX = Xb - Xa: detY = Yb - Ya
If Abs(detX) < 0.00000001 Then
MsgBox "除数为零,请检查坐标输入是否正确!"
txtxa.SetFocus
Exit Sub
End If
s = Sqr(detX * detX + detY * detY)
If Abs(detX) < 0.000001 Then
If detY > 0 Then
ab = 90
Else
ab = 270
End If
Else
tana = detY / detX
ab = Atn(tana) '得到的是弧度
ab = ab * 180 / Pi
If detX < 0 Then
ab = 180 + ab
ElseIf detX > 0 And detY < 0 Then
ab = 360 + ab
End If
End If
du = Fix(ab): ab = (ab - du) * 60
fen = Fix(ab): ab = (ab - fen) * 60
miao = Fix(ab)
txtDu = Trim(Str(du)): txtFen = Trim(Str(fen)): txtMiao =