找到一个字符串,获取其下的数据并将其输入另一个工作表

时间:2015-07-17 15:02:40

标签: excel vba excel-vba

我想要制作一些代码,在所有工作表中搜索字符串“Question”,然后在它下方取“5”行。然后取这5行,并将它们放在“B2”行的“模板”工作表中。

这是我目前的代码:

    Dim SearchString As String
    Dim SearchRange As Range, cl As Range
    Dim FirstFound As String
    Dim sh As Worksheet
    ' Set Search value
    SearchString = "Question"
    Application.FindFormat.Clear
    ' loop through all sheets
    For Each sh In ActiveWorkbook.Worksheets
        ' Find first instance on sheet
        Set cl = sh.Cells.Find(What:=SearchString, _
            After:=sh.Cells(1, 1), _
            LookIn:=xlValues, _
            LookAt:=xlPart, _
            SearchOrder:=xlByRows, _
            SearchDirection:=xlNext, _
            MatchCase:=False, _
            SearchFormat:=False)
        If Not cl Is Nothing Then
            ' if found, remember location
            FirstFound = cl.Address
            ' format found cell
            Do
                cl.Font.Bold = True
                cl.Interior.ColorIndex = 3
                ' find next instance
                Set cl = sh.Cells.FindNext(After:=cl)
            Loop Until FirstFound = cl.Address
        End If
    Next

所有这些代码都找到了字符串。如何获取字符串下方的数据并将其复制到“模板”工作表?

1 个答案:

答案 0 :(得分:1)

您需要投资.Offset Method

Dim RangeToCopy As Range, DestRow As Long
Set RangeToCopy = sh.Range(cl.Offset(1, 0), cl.Offset(5, 0))
RangeToCopy.Copy
DestRow = Sheets("Template").Range("B" & Rows.Count).End(xlUp).Row + 1
Sheets("Template").Range("B" & DestRow).PasteSpecial xlPasteValues