excel vba 字典取出相同key的值 5
sheet1有c列与d列。数据非常多,。想在sheet2中a列查所有c列名称对应的值。将b列对应值填到sheet1d列。想要快速方法。find速度没达到效果....
sheet1有c列与d列。数据非常多,。 想在sheet2中a列查所有c列名称对应的值。将b列对应值填到sheet1d列。想要快速方法。find 速度没达到效果.
展开
3个回答
展开全部
凑个热闹……公式的话,用寥神的方法足矣!
如果亲一定要用VBA字典的话,也是有办法的。首先,字典的KEY还是Sheet2的A列,但是ITEM值可以用字符串不断“续写”,中间用怪字符连接起来。
例如:d (Sheets(2).Range("A1").Value) = d (Sheets(2).Range("A1").Value) & "_" & Sheets(2).Range("B1").Value
最后,在Sheet1中用循环,填写D列时,把字典中的ITEM用SPLIT函数拆开;或者用INSTR函数取字符串也可。具体要看你D列要求怎么填写。
填写一个D值,则删除ITEM中对应的字符串。
如果亲一定要用VBA字典的话,也是有办法的。首先,字典的KEY还是Sheet2的A列,但是ITEM值可以用字符串不断“续写”,中间用怪字符连接起来。
例如:d (Sheets(2).Range("A1").Value) = d (Sheets(2).Range("A1").Value) & "_" & Sheets(2).Range("B1").Value
最后,在Sheet1中用循环,填写D列时,把字典中的ITEM用SPLIT函数拆开;或者用INSTR函数取字符串也可。具体要看你D列要求怎么填写。
填写一个D值,则删除ITEM中对应的字符串。
展开全部
用index+match试试 速度。
For j = 1 To 3 ‘循环sheet2表的a列
If dic.exists(arr1(j, 1)) Then ’判断是否存在字典key值,返回item
arr1(j, 2) = dic(arr1(j, 1))
End If
Next
用这种方法也行。。
For j = 1 To 3 ‘循环sheet2表的a列
If dic.exists(arr1(j, 1)) Then ’判断是否存在字典key值,返回item
arr1(j, 2) = dic(arr1(j, 1))
End If
Next
用这种方法也行。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
字典中的key就是唯一的 关键字 ,你要相同,是什么一意思呢?
这种事情,数组效率也还可以,字典讲究字典唯一值。
这种事情,数组效率也还可以,字典讲究字典唯一值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询