Excel VBA:搜索文本副本偏移行

时间:2015-05-21 17:34:20

标签: excel vba excel-vba

我有一个.csv文件,我写了一个宏来读入。它将数据放在Sheet2中。

我需要复制一个数据块,该数据块以文本字符串" BP Error"后面的行开头。在该字符串之前的数据的长度可以变化,但是我感兴趣的数据块具有固定的大小。我想将此数据块复制回我工作簿的Sheet1

我尝试过一个子程序来搜索" BP Error"但我一直试图做胶版复印。在" BP Error"之后,我需要接下来的18行数据。 (顺便说一下,它总是在B列中。)

示例:BP Error位于单元格B13中,我需要将单元格A14:G31复制到Sheet1

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

由于您必须只找到第一个" BP错误",以下代码将为您完成工作(不要忘记更改工作表名称并检查范围以确定它们是否符合您的需求) :

Sub DoYourJob()

Dim readingRow As Long

Dim sourceSheet As Worksheet
Dim destinationSheet As Worksheet

Set sourceSheet = ThisWorkbook.Worksheets("YourSourceSheetName")
Set destinationSheet = ThisWorkbook.Worksheets("YourDestinationSheetName")

For readingRow = 1 To sourceSheet.Cells(sourceSheet.Rows.Count, 2).End(xlUp).Row

    If sourceSheet.Cells(readingRow, 2) = "BP Error" Then

        sourceSheet.Range(sourceSheet.Cells(readingRow + 1, 1), sourceSheet.Cells(readingRow + 18, 7)).Copy (destinationSheet.Cells(1, 1))
        Exit For

    End If

Next readingRow

End Sub