5个回答
展开全部
sub test()
dim dic as object,mAry,mRow as long,
set dic=createobject("scripting.dictionary")
with workSheets("数据")
mrow=.cells(.rows.count,1).end(3).row
mAry=.[a2].resize(mrow-1,2)
end with
for i=1 to ubound(mary,1)
dic("" & mary(i,1))=mary(i,2)
next i
with worksheets("求解表")
mrow=.cells(.rows.count,1).end(3).row
mAry=.[a2].resize(mrow-1,1)
for i=1 to ubound(mary,1)
if dic.exists("" & mary(i,1)) then
mary(i,1)=dic.exists("" & mary(i,1))
else
mary(i,1)="NO find!"
end if
next i
.[b2].resize(ubound(mary,1),1)=mary
end with
end sub
追问
谢谢啊,显示dim dic as object,mAry,mRow as long,这个是语法错误,如果删除这个一行就得出的结果是NO Find 和 Ture。
追答
呃,手写的代码。。
修改如下
sub test()
dim dic as object,mAry,mRow as long
set dic=createobject("scripting.dictionary")
with workSheets("数据")
mrow=.cells(.rows.count,1).end(3).row
mAry=.[a2].resize(mrow-1,2)
end with
for i=1 to ubound(mary,1)
dic("" & mary(i,1))=mary(i,2)
next i
with worksheets("求解表")
mrow=.cells(.rows.count,1).end(3).row
mAry=.[a2].resize(mrow-1,1)
for i=1 to ubound(mary,1)
if dic.exists("" & mary(i,1)) then
mary(i,1)=dic("" & mary(i,1))
else
mary(i,1)="NO find!"
end if
next i
.[b2].resize(ubound(mary,1),1)=mary
end with
end sub
展开全部
Function myvlookup(val, rg As Range, n As Integer, f As Boolean)
arr = rg
If f Then
For i = UBound(arr) To 1 Step -1
If val >= arr(i, 1) Then
myvlookup = arr(i, n)
End Function
End If
Next
Else
For i = 1 To UBound(arr)
If val = arr(i, 1) Then
myvlookup = arr(i, n)
End Function
End If
Next
End If
myvlookup = "Nothing is find!"
End Function
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
既然使用了VBA就没必要再使用内置函数,VBA可以把VLookUp重新定义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
VBA不见得比内置函数快哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上传附件 我看看
留个联系呗
留个联系呗
追问
上传不了,要不我加你q
追答
你留一个,我加尼,发你个副本看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询