急求高手指点,如何在excel的100多个sheet表中查找引用,
具体就是在excel中有100个sheet表,能不能用VLOOKUP查找引用,或用VB能实现查找引用吗,具体语法是,,,谢谢...
具体就是在excel中有100个sheet表,能不能用VLOOKUP查找引用,或用VB能实现查找引用吗,具体语法是,,,谢谢
展开
展开全部
我靠,100多个工作表,用vlookup会很慢很慢的,一定要vba,把你的要求说详细点吧
给你一些参考
Sub f7() '查找不到的情况
Dim MRG As Range
Set MRG = Range("A:A").Find("D")
If MRG Is Nothing Then
MsgBox "查找不到字母D"
Else
MsgBox "查找成功,单元格地址为:" & MRG.Address
End If
End Sub
Sub f8() '二次查找
Dim MRG As Range
Set MRG = Range("A:A").Find("A")
Set mrg1 = Range("A:A").FindNext(MRG)
MsgBox mrg1.Address
End Sub
Sub F9() '区域查找
Dim MRG As Range, AAA As String
Set MRG = Range("A1:F16").Find("A")
AAA = MRG.Address
Do
Set MRG = Range("A1:F16").FindNext(MRG)
MsgBox MRG.Address
Loop Until MRG.Address = AAAEnd Sub
给你一些参考
Sub f7() '查找不到的情况
Dim MRG As Range
Set MRG = Range("A:A").Find("D")
If MRG Is Nothing Then
MsgBox "查找不到字母D"
Else
MsgBox "查找成功,单元格地址为:" & MRG.Address
End If
End Sub
Sub f8() '二次查找
Dim MRG As Range
Set MRG = Range("A:A").Find("A")
Set mrg1 = Range("A:A").FindNext(MRG)
MsgBox mrg1.Address
End Sub
Sub F9() '区域查找
Dim MRG As Range, AAA As String
Set MRG = Range("A1:F16").Find("A")
AAA = MRG.Address
Do
Set MRG = Range("A1:F16").FindNext(MRG)
MsgBox MRG.Address
Loop Until MRG.Address = AAAEnd Sub
更多追问追答
追问
谢谢,一百多个表的格式都一样,要查找引用的结果和Vlookup查找的结果一样,第一列的编号,第2,3,4,5,6,7,8,9,10,11,12,13列是数据,根据第一列的编号(编号为查找参数)找到该编号所在的行,再显示所在行的第2。。。。。12列的数据,不知说的明白不,,谢谢。如用VB编辑,该咋写语法,,,谢谢
追答
Private Sub Worksheet_Change(ByVal Target As Range) '''''''单元格变动事件
'MsgBox "单元格变动事件"
If Target.Address = "$A$1" Then ''仅响应事件的单元格有效
vl = Cells(Target.Row, Target.Column) ''取查找值
xr = Target.Row: xc = Target.Column
If Len(vl) = 0 Then Exit Sub ''空值退出
On Error Resume Next
x = ActiveSheet.Name
'MsgBox x
For Each Sh In ThisWorkbook.Sheets
If Sh.Name = x Then GoTo a_next
y = Sh.Name
'MsgBox y
Set sj = Worksheets(y)
ed = sj.[A65536].End(xlUp).Row
'MsgBox (ed)
Set rg = sj.Range("A1:A" & ed).Find(vl, LookIn:=xlValues)
'MsgBox (rg)
If rg Is Nothing Then GoTo a_next 'MsgBox y & "没找到!":
Target.Select
'MsgBox rg.Row & rg.Column
Worksheets(x).Cells(xr, xc + 1) = Worksheets(y).Cells(rg.Row, rg.Column + 1)
Set sj = Nothing
Exit For '''仅找出第一个符合条件项,忽略其它符合条件项
a_next: Set sj = Nothing
Next
End If
End Sub
如果你要查找的单元格多,就弄个循环吧
展开全部
如果每个工作表数据不多的话可用VLOOKUP,如果数据量太多的话,文件又大,运行起来有点慢,如果讲速度的话最好用VB。看你的具体要求是什么。
追问
谢谢,一百多个表的格式都一样,要查找引用的结果和Vlookup查找的结果一样,第一列的编号,第2,3,4,5,6,7,8,9,10,11,12,13列是数据,根据第一列的编号(编号为查找参数)找到该编号所在的行,再显示所在行的第2。。。。。12列的数据,不知说的明白不,,谢谢。如用VB编辑,该咋写语法,,,谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个直接用vlookup函数就行了.至于你说的一位编号会对应两位编号中的十位或个位,估计是编号的数字格式的问题,你试一下改变编号的格式看看.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询