VB98的问题

来源:百度知道 编辑:UC知道 时间:2024/04/30 02:34:13
我编了一个程序希望大家帮忙改进一下。
就是输入后无法退格。
我也知道只要将KeyAscii = 0删掉即可,但是我想清除其他的非法字符。
我将text换成了txtInput,将picture换成了picOutput。
编码如下
Private Sub txtInput_KeyPress(KeyAscii As Integer)
Dim a() As Single, b(0 To 10) As Integer, n%, s$, p%
If KeyAscii <> 13 Then
Select Case Chr(KeyAscii)
Case "0" To "9", ".", ","
Case Else
KeyAscii = 0
End Select
Else
n = 0
s = txtInput
p = InStr(s, ",")
Do While p > 0
n = n + 1
ReDim Preserve a(1 To n)
a(n) = Val(Left(s, p - 1))
s = Mid(s, p + 1)
p = InStr(s, ",")
Loop
ReDim Preserve a(1 To n + 1)
a(n + 1) = Val(s)
For p = 0 To 10
b(p) = 0
Next p
For p = LBound(a) To UBound(a)
n = a(p) \ 10
b(n) = b(n) + 1
Next p
For p = 0 To 9
picOutput.Print (p * 10) & "-" & (p * 10 + 9.5) & "学生人数:" & b(p)
Next p
picOut

差一点没看见你的问题补充。
相当简单。代码只需作如下更改。
===============
'……
If KeyAscii <> 13 Then
Select Case Chr(KeyAscii)
Case "0" To "9", ".", ",", Chr(8) '改了这里
Case Else
KeyAscii = 0
End Select
'……
================================
怎么样?
===============================
第二个问题
For p = LBound(a) To UBound(a)
n = Fix(a(p)) \ 10 '改了这里
b(n) = b(n) + 1
Next p
=================================
第三个问题
假设按钮是Command1。
Private Sub Command1_Click()
picoutput.Cls
End Sub
=================================
还有问题吗?