永发信息网

VBA操作两个不同excel之间进行匹配查找,数据1W条左右,用双循坏匹配查找大概需要10分钟左右

答案:1  悬赏:10  手机版
解决时间 2021-02-08 05:51
双循坏时间操作时间太久了,怎么将双循坏程序改成用VBA字典的方式呢?
Sub SearchGroup()

'match group name
Dim fp As String, acct As String, acctb As Workbook, acctsht As Worksheet

'Application.ScreenUpdating = False

'On Error GoTo VeryEnd

'Set acct = ThisWorkbook.Path & "\Accounts 123.xlsx"
fp = ThisWorkbook.Path & "\Accounts_123.xlsm"

Set acctb = GetObject(fp)
'Set acctb = Workbooks.Open(fp)

Set acctsht = acctb.Sheets(1)

'acctsht.Cells(3, 3).Copy ThisWorkbook.Sheets(1).Cells(2, "T")

'account list row numbers
Dim Acc As Long, Ccc As Long

'account rows
Acc = acctsht.Range("A1").End(xlDown).Row
ThisWorkbook.Sheets(1).Cells(3, "T") = Acc
'closed trades report rows
Ccc = Sheet1.Range("A1").End(xlDown).Row
ThisWorkbook.Sheets(1).Cells(4, "T") = Ccc

For m = 2 To Ccc

For n = 2 To Acc

If (Sheet1.Cells(m, 2).Value = acctsht.Cells(n, 1).Value) Then

Sheet1.Cells(m, "Q") = acctsht.Cells(n, "C")

End If

Next n

Next m

'VeryEnd:
Application.ScreenUpdating = True

End Sub
最佳答案
For m = 2 To Ccc

For n = 2 To Acc

If (Sheet1.Cells(m, 2).Value = acctsht.Cells(n, 1).Value) Then

Sheet1.Cells(m, "Q") = acctsht.Cells(n, "C")

End If
这两个for很浪费,即使出现多次(Sheet1.Cells(m, 2).Value = acctsht.Cells(n, 1).Value)成立, Sheet1.Cells(m, "Q") 也只能保存最后一个acctsht.Cells(n, "C")
考虑用sql查询的方式
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
摩托车白天开灯
微信漂流瓶被人举报了怎么办?
证券投资基金的销售人员包括( )。Ⅰ.负责基金
中国·天中书画艺术研究会地址在哪,我要去那
惠普笔记本tpnw118如何查看u盘资料
平面图形应用题11.王村有一个占地面积是720平
微信公众号如何开通评论和赞赏功能
【高考】您好,今年高考,我想学平面设计专业
单相电机如何检测烧坏
中国邮政储蓄银行ATM(永平街)地址有知道的么
木屋(卧石店)地址在哪,我要去那里办事
滴滴出租车是什么车型
两个正态双变量资料,自变量记为X,因变量记
怎么看待恋爱中有一方假炫富
Yun nuo看拼音,写词语
推荐资讯
国家公务员考试报考时对户籍及生源地的定义是
玛斯荻娃在什么地方啊,我要过去处理事情
公司裁员对员工说是回家休息怎么算补偿
临淄青少年书画院地址在什么地方,想过去办事
工行柜台兑换泰铢为什么汇率比网上差
请问图片中的门头是什么材料做的,并说明上面
求几本关于写足球的网络小说(最好是完本的)
柳橙MBA·MPA·MPACC怎么去啊,有知道地址的
动植物的呼吸为什么是缓慢氧化
离我最近的广汽本田4s店
楚圣庐纳米汗蒸我想知道这个在什么地方
【薄荷读音】薄荷中文怎么读
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?