请问,如何在2个excel中用vba来代替vlookup,求助

 我来答
2724421
2012-02-19 · TA获得超过2493个赞
知道大有可为答主
回答量:1551
采纳率:71%
帮助的人:953万
展开全部
你果然又来提问了.那天我看到你的追问你竟然已经结贴了.郁闷
现在发给你两个文件的 两个文件必须是同目录的
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Column = 2 Then
Dim yrng As Range
Workbooks.Open (ActiveWorkbook.Path & "\1.xls")
Workbooks("2.xls").Activate
Set yrng = Workbooks("1.xls").Sheets("sheet1").Range("B:B")
Dim rng1 As Range
aa = Target
Set rng1 = yrng.Find(aa, lookat:=xlWhole)
If Not rng1 Is Nothing Then
Target.Offset(0, 3) = rng1.Offset(0, 1)
End If
End If
Application.ScreenUpdating = True
End Sub
追问
求定制啊,我想套用进去还不行,晕了,你有百度HI吗?我加你了
追答
Sub 填写I列发货日期()
Application.ScreenUpdating = False
Dim yrng As Range
Dim af As Workbook
Dim yn As Boolean
endrow = Range("B65536").End(xlUp).Row
For Each af In Workbooks
bbbb = af.Name
If af.Name = "10年发货.xls" Then yn = True
Next
If yn = False Then Workbooks.Open (ActiveWorkbook.Path & "\" & "10年发货.xls")
Workbooks("西奥合同台账汇总表.xls").Activate
Set yrng = Workbooks("10年发货.xls").Sheets("sheet1").Range("B:B")
Dim rng1 As Range

For i = 3 To endrow
aa = Range("B" & i)
Set rng1 = yrng.Find(aa, lookat:=xlWhole)
If Not rng1 Is Nothing Then
Range("B" & i).Offset(0, 7).NumberFormat = "yyyy-m-d"
Range("B" & i).Offset(0, 7) = Format(rng1.Offset(0, 12), "yyyy-m-d")
End If
Next
Application.ScreenUpdating = True
End Sub
坚强de泡泡
2012-02-19 · TA获得超过544个赞
知道小有建树答主
回答量:403
采纳率:0%
帮助的人:216万
展开全部
可以用 RANGE.FIND 方法
然后用.OFFSET 返回你要的值
具体可以看VBA里的帮助 事例就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式