明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 517|回复: 4

请教高人!VB将xls中列中数据与list中的匹配,最快的方法是?

[复制链接]
发表于 2021-12-24 11:52 | 显示全部楼层 |阅读模式
请教高人!VB将xls中列中数据与list中的匹配,最快的方法是?
xls数据量一般都在1000行左右,list中的照片一般都在2000行左右,我操作一次需要20分钟,请问有最快的方法吗?
        For i = 1 To xlSheet.range("A65536").End(3).Row
            For n = 0 To Me.List1.ListCount - 1
                ff = f(Me.List1.list(n))                    '截取名字部分
                ff1 = Format(xlSheet.Cells(i, 4), "0")      
                If xlSheet.Cells(i, 3) <> "空地" Then       '判断属性部分
                   GoTo Ei
                Else
                    'Debug.Print xlSheet.Cells(i, 4)
                    If ff1 = ff Then
                        Debug.Print i
                        Debug.Print ff
                        'List1.RemoveItem (n)
                        xlSheet.Cells(i, 8) = "图片"
                        GoTo Ei
                    End If
                End If
            Next n
Ei:
        Next i

发表于 2021-12-26 12:39 | 显示全部楼层
FOR中怎么还用GOTO,应用exit  for
你这个查找对应的,要优化,不清楚你数据有规律没有,有规律要用二分法查找之类的。
再有,你要把XLS和LIST的数据都放数组中,再查找,数组查找要比访问excel单元格快不少。
发表于 2021-12-27 09:03 | 显示全部楼层
同上。先把数据读到数组里面,数组排序,然后在数组里查找。采取高效的搜索方法,没必要每个都比较。
 楼主| 发表于 2021-12-29 13:56 | 显示全部楼层
多谢!多谢!将数据读取到数组中确实快不少
发表于 2021-12-29 15:29 | 显示全部楼层
yswoyh 发表于 2021-12-29 13:56
多谢!多谢!将数据读取到数组中确实快不少

改进算法,检索效率也可以提高。否则是M x N。二分法M x log2(N)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-6 03:12 , Processed in 0.432472 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表