VB 多条件筛选数据

来源:百度知道 编辑:UC知道 时间:2024/05/31 15:00:23
举例数组:
10 20 25
30 40 56
20 30 12
70 50 55
25 35 37
26 10 62
10 50 15
50 80 45
30 25 22
31 36 41
50 20 22
还有多个类似的文本,请问有什么方法从
这些文本中间 这些文本中间 这些文本中间 这些文本中间
筛选出自己想要的数据:分别以第一列和第三列的数作为条件 ,而且第一,三列的条件数据不一定在数据库中存在,如果不存在,就筛选最接近的数组!此问题也相当于查找数据,表述不清 ,请看举例
比如:从上面数据中筛选出一组数据,条件数据为(10,*,15.2),通过10和15.2筛选出结果为(最接近)(10,50,15)
比如:条件为(50.5,*,22.3) 筛选出数组为(50,20,22)
我是菜鸟,请回答尽量详尽!如果合适的答案,我会追分的!
难道真的没有高手来吗吗?帮帮我啊 急用!给我点思路也行啊 ,难道这么多分的问题 到最后还要关闭,没人要?我QQ272160626 在线等啊

把上面的数据保存成Txt文件,放在D: 根目录中。
代码如下。
===================
Option Explicit

Private Sub Form_Click()
Dim s As String, a(10, 2) As Byte, i As Byte
Open "d:\1.txt" For Input As 1
Do Until EOF(1)
Line Input #1, s
a(i, 0) = Val(Split(s)(0))
a(i, 1) = Val(Split(s)(1))
a(i, 2) = Val(Split(s)(2))
i = i + 1
Loop
Dim inp As String, b(2) As Single, j As Byte, sum As Single, min As Single, minj As Byte
min = 10000
b(0) = Val(InputBox("第一个数据,如果为*则输入0", , 0))
b(1) = Val(InputBox("第二个数据,如果为*则输入0", , 0))
b(2) = Val(InputBox("第三个数据,如果为*则输入0", , 0))
For j = 0 To i - 1
sum = IIf(b(0), Abs(a(j, 0) - b(0)), 0) + IIf(b(1), Abs(a(j, 1) - b(1)), 0) + IIf(b(2), Abs(a(j, 2) - b(2)), 0)
If sum < min Then min = sum: minj = j
Next
Print "最符合要求的是第" & minj + 1 & "个数据:" & a(minj, 0) & "," & a(minj,