因为EXCEL表中大量使用VLOOKUP导致很卡,在网上查了VBA,但只能每次改了信息数据然后手动更新,有自动吗
submain()setdic=createobject("scripting.dictionary")'后期绑定字典fori=1to100'Sheet1中有多少行,这里...
sub main()
set dic=createobject("scripting.dictionary")'后期绑定字典
for i=1 to 100'Sheet1中有多少行,这里改为多少
dic(sheets(1).cells(i,"A").value)=sheets(1).cells(i,"C")'Sheet1中名为字典目录,数值为字典项目
next
for i=1 to 200'sheet2中最大行数
if dic.exists(cells(i,"A").value) then'如果字典中存在
cells(i,"C")=dic(cells(i,"A").value)'将字典中相应的值赋予C列中
end if
next i
end sub
如果新增或更改字典的内容,sheets(2)就要重新运行下宏。。。。。。 展开
set dic=createobject("scripting.dictionary")'后期绑定字典
for i=1 to 100'Sheet1中有多少行,这里改为多少
dic(sheets(1).cells(i,"A").value)=sheets(1).cells(i,"C")'Sheet1中名为字典目录,数值为字典项目
next
for i=1 to 200'sheet2中最大行数
if dic.exists(cells(i,"A").value) then'如果字典中存在
cells(i,"C")=dic(cells(i,"A").value)'将字典中相应的值赋予C列中
end if
next i
end sub
如果新增或更改字典的内容,sheets(2)就要重新运行下宏。。。。。。 展开
5个回答
展开全部
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row <= [a65536].End(3).Row Then
Set dic = CreateObject("scripting.dictionary") '后期绑定字典
For i = 1 To 100 'Sheet1中有多少行,这里改为多少
dic(Sheets(1).Cells(i, "A").Value) = Sheets(1).Cells(i, "C") 'Sheet1中名为字典目录,数值为字典项目
Next
For i = 1 To 200 'sheet2中最大行数
If dic.exists(Cells(i, "A").Value) Then '如果字典中存在
Cells(i, "C") = dic(Cells(i, "A").Value) '将字典中相应的值赋予C列中
End If
Next i
End If
End Sub
展开全部
Private Sub Worksheet_Change(ByVal Target As Range)
main
End Sub
右击sheets(2)》查看代码》粘贴这段代码。原代码保留
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
推荐一个工具,vba编写实现vlookup大量数据检索功能https://www.jianshu.com/p/fe438799d829
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
修改完成后,你再执行就好了!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把标题修改为 单元格事件
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询