帮我修改一下这个vb高手给我写的代码!

未改前:PrivateSubCommand1_Click()Text3=""a0=Split(Text2.Text,Chr(13)+Chr(10))forEachyIna... 未改前:
Private Sub Command1_Click()

Text3 = ""
a0 = Split(Text2.Text, Chr(13) + Chr(10))
for Each y In a0
Debug.Print y
a1 = Split(Text1, "+")
For Each x In a1
Sum = Sum + Val(aa(x, y))
b = b & aa(x, y) & "+"
Next

Text3.Text = Text3.Text & Left(b, Len(b) - 1) & "=" & Sum & Chr(13) & Chr(10)
b = ""

Next

End Sub

Public Function aa(ByVal a As String, ax As Variant) As Integer
Select Case a
Case "第一个数"
aa = bb(1, ax)
Case "第二个数"
aa = bb(2, ax)
Case "第三个数"
aa = bb(3, ax)
Case "第四个数"
aa = bb(4, ax)
Case "第五个数"
aa = bb(5, ax)
End Select
End Function

Public Function bb(ByVal a As String, ax As Variant) As Integer
b = Split(ax)
Select Case a
Case "1"
bb = b(0)
Case "2"
bb = b(1)
Case "3"
bb = b(2)
Case "4"
bb = b(3)
Case "5"
bb = b(4)
End Select
End Function

与下面有什么不一样?
_________________________
修改后:
Private Sub Command1_Click()

Text3 = ""
a0 = Split(Text2.Text, Chr(13) + Chr(10))
For Each y In a0
Debug.Print y
a1 = Split(Text1, "+")
For Each x In a1
Sum = Sum + Val(aa(x))
b = b & aa(x) & "+"
Next
Text3.Text = Text3.Text & Left(b, Len(b) - 1) & "=" & Sum & Chr(13) & Chr(10)
b = ""
Next

End Sub

Public Function aa(ByVal a As String) As Integer
Select Case a
Case "第一个数"
aa = bb(1)
Case "第二个数"
aa = bb(2)
Case "第三个数"
aa = bb(3)
Case "第四个数"
aa = bb(4)
Case "第五个数"
aa = bb(5)
End Select
End Function

Public Function bb(ByVal a As String) As Integer
b = Split(Text2.Text)
Select Case a
Case "1"
bb = b(0)
Case "2"
bb = b(1)
Case "3"
bb = b(2)
Case "4"
bb = b(3)
Case "5"
bb = b(4)
End Select
End Function

它们有什么不一样的?
这是一位高手帮我写的,我只是把修改后的二维数组换成了一维数组,但是结果不一样,这是为什么?一直看不懂?还有就是未修改的运行时为什么在text2.text输入多行,运行时text3.text的每一行总是前几行的累加和?而不是每一行的和?
展开
 我来答
zy954pS
2008-11-18 · 超过21用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:0
展开全部
简单问题复杂化,搞不清楚为什么弄那么多aabb的,
不过从第一段代码看来,每一行相加之后没有清零。

for Each y In a0
后面加上一句
sum = 0
即可,在另一个帖子里面已经回答你这个问题。
至于第二段代码,没耐心看了。
useway
2008-11-18
知道答主
回答量:11
采纳率:0%
帮助的人:10万
展开全部
哈哈,你这位兄弟,最上面的那段代码是我写的。
下面的那个不知道那哥们儿,怎么非要给我改了,我比较来气!
我写的代码明明没有任何问题,愣说我有问题,被气晕了快!!
“aa = bb(3, ax)”把这个参数传过去,和,“b = Split(Text2.Text) ”
有区别。

没想到,今天又让我碰上你了,看来还是有缘,本来想给你解决一下,但是,看了看你给的分也太低了吧!才10分,太抠了点吧!
________________________________________________________

算了,我给你解释解释吧!

1、单行变多行的思路
找到“Chr(13) & Chr(10) ”回车换行符,进行split
然后,再不数组中的每一个元素,split就行了

2、你没理解的地方
你的bb函数直接split那个文本框里的值,那就不行了,需要把split回车换行符后的数组元素传递给bb,另由于bb不能直接接收这个参数ax,所以,必须借助aa函数帮助传递。

3、这个程序很简单,需要弄懂的地方
a.VB的数组用法
b.VB函数的用法
c.VB获取ASCII码指定字符的方法

4、下次提问注意的地方
多给点分,以后怎么着也得照着100分给呀。呵呵,开玩笑的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2008-11-18
展开全部
一般人看不懂!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式