VBA实现excel查找复制整行的功能

需求是a.xls用来实现vba编程,b.xls用来作为源文件,要求在a表的sheet1中A1输入我要查找的字符串,然后点击按钮,就可以在b表中,从sheet1开始一直到最后一个sheet(一般会有一两百个sheet),查找每一个sheet中匹配A1字符串的单元格,不用100%匹配,只要包含我输入的字符串就可以,大小写要区分,如果找到了,将该单元格所在行一整行复制到a表的sheet2,从第一行开始粘贴。简单说,就是我在a表输入要查找的数据,在b表中每个sheet中查找,找到了就复制整行到a表,就这样啦。如果麻烦,你可以限定一下查找的范围,列就到z,行就到200,反正效率别太慢就行。谢谢。

Sub LKJLK()
    Application.ScreenUpdating = False
    Workbooks.Open Filename:=ThisWorkbook.Path & "\b.xls"
    Set tbs = ThisWorkbook.Sheets(1)
    fa = tbs.[b1]
    Set wb = ActiveWorkbook
    For st = 1 To wb.Sheets.Count
        Set ss = Sheets(st)
        xr = ss.[a65536].End(3).Row
        For x = 1 To xr
            Set ff = ss.Range(ss.Cells(x, 1), ss.Cells(x, "iv")).Find(What:=fa, MatchCase:=True)
            If Not ff Is Nothing Then
            ss.Rows(x & ":" & x).Copy tbs.Range("a" & tbs.[a65536].End(3).Row + 1)
            End If
        Next
    Next
    ActiveWindow.Close
    Application.ScreenUpdating = True
End Sub

大概就这样吧,没附件,A/B两个工作薄放在同一目录下,代码放在A工作薄中,工作薄的第一个工作表的B1单元格内容为要查找的内容,B工作薄为数据源

追问

谢谢,运行了一下,大小写可以,部分匹配也可以,但是唯一不足的是把结果显示在sheet1了,我想把结果显示在sheet2,不知可否满足。

追答

Set tbs = ThisWorkbook.Sheets(1)把这句的1改成2就行了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-03
【名臣】的VBA语句虽然能运行,但复制不过去,是怎么回事
相似回答