Excel VBA:search文本复制偏移行

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

我需要复制在文本string“ BP Error ”之后的行中开始的数据块。 该string之前的数据可能会有所不同,但我感兴趣的数据块的大小是固定的。 我想将这个数据块复制回工作簿的Sheet1中。

我试图做一个子程序,将search“ BP Error ”,但我一直陷入试图做偏移复制。 我需要接下来的18行数据,跟在那个“ BP Error ”string之后(顺便说一句,它总是在列B )。

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

有什么build议么?

由于您只能find第一个“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