vb高手请进,很难的一个公式计算

来源:百度知道 编辑:UC知道 时间:2024/06/08 16:23:31
控件:text1,text2,text3,command1 text2和text2的属性(并:控件放 大):Scrollbars设为2,Multiline设为true(真)
要求:在text1.text里面输入一个公式:第一个数+第二个数+第五个数
text2.text里面一次输入N行数字:(注:下面括号内不是要输入的内容)
41 52 63 78 26 19(一共有6组数字,分别对应:第一个数…第六个数)
54 65 32 21 98 45(一共有6组数字,分别对应:第一个数…第六个数)
……
这样第一行:“第一个数”为41,“第二个数”为52,“第三个数”为63,“第四个数”为78,“第五个数”为26,“第六个数”为19
而在第二行:“第一个数”为54,“第二个数”为65,“第三个数”为32,“第四个数”为21,“第五个数”为98,“第六个数”为45
当我单击command1里,text3.text里面就显示结果:
119
217
这个119是第一行的“第一个数”+“第二个数”+“第五个数”即41+52+26所得的结果。(对应text1里面输入的公式得的结果)
217是第二行的“第一个数”+“第二个数”+“第五个数”即54+65+98所得的结果。(对应text1里面输入的公式得的结果)

建一个Command1,Text1,Text2,Text3 ,要求Text2,Text3的Multiline=True .
代码如下。
====================
Const t = "一二三四五六"
Private Sub Command1_Click()
Dim a, b, c, i As Integer, e As String, s As Long, j As Integer
a = Split(Text1.Text, "+")
b = Split(Text2.Text, vbCrLf)
For i = 0 To UBound(b)
c = Split(b(i))
For j = 0 To UBound(a)
s = s + Val(c(InStr(1, t, Mid(a(j), 2, 1)) - 1))
Next
e = e & s & vbCrLf
s = 0
Next
Text3.Text = e
End Sub

32