VB 多条件筛选数据

举例数组:102025304056203012705055253537261062105015508045302522313641502022还有多个类似的文本,请问有什... 举例数组:
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 在线等啊
展开
 我来答
ARTERIOSCLEROS
推荐于2016-05-18 · TA获得超过4183个赞
知道大有可为答主
回答量:1672
采纳率:0%
帮助的人:2426万
展开全部
把上面的数据保存成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, 1) & "," & a(minj, 2)
Close
End Sub

用(10,*,15.2),(50.5,*,22.3)测试通过。
949060968
2009-06-06 · TA获得超过393个赞
知道小有建树答主
回答量:209
采纳率:0%
帮助的人:108万
展开全部
50.22
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HappyQ6
2009-06-05 · TA获得超过2092个赞
知道大有可为答主
回答量:1641
采纳率:100%
帮助的人:565万
展开全部
这个允许的误差最大多大呢?
可以hi me
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
恶魔天使Dizzy
2009-06-05 · TA获得超过718个赞
知道小有建树答主
回答量:2762
采纳率:0%
帮助的人:849万
展开全部
学习中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
veimi
2009-06-05 · TA获得超过2350个赞
知道大有可为答主
回答量:5720
采纳率:28%
帮助的人:3045万
展开全部
有点复杂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式