一个vb小实验是帮我解决?

来源:百度知道 编辑:UC知道 时间:2024/09/18 05:55:32
要求:将输入的原码一律转换为大写字母进行译码,若出现字母以外的其他字符,则显示出错信息。
译码规则:
原码 译码
A G
B H
C I
D J
. .
. .
. .
. .
. .
. .
X D
Y E
Z F

我的代码如下
Private Sub Command1_Click()
Dim i As Integer, n As Integer, a As String, b As String, c As Integer, d As Integer, e As String
a = UCase(Text1.Text)
n = Len(a)
For i = 1 To n
b = Mid(a, i, 1)
c = Asc(b)
If c > 90 Or c < 65 Then
MsgBox "请不要输入字母以外的其他字符!", 48 + vbOKOnly, "译码"
Text2.Text = ""
ElseIf c >= 65 And c <= 84 Then
d = c + 6
e = Chr(d)
Text2.Text = Text2.Text & e
ElseIf c >= 85 And c <= 90 Then
d = c - 20
e = Chr(d)
Text2.Text = Text2.Text & e
End If
Next i
End Sub

它的问题是出错信息MsgBox也跟着循环

在 text2.text=""
下面加个 Exit Sub

你定义一个字符串,将所有出错的字符连接起来,到最后再MsgBox啊

那要看你弹出MSGBOX时是不是要退出子程序,如果要,那你就直接在TEXT2.TEXT=""下面END就行了
如果不是,你就加一个FLAG,如果有非法字符就将FLAG置1,最后检查FLAG决定是否需要报错。

三楼正解。