いくつかの場所でマージされている列で特定の単語を検索する必要があり、それが存在する場合は、マージされているその行をコピーして別のシートに貼り付ける必要があります。
私が使用する以下のコードは、単語を含む最初のマージされた行のみをコピーして貼り付けると、エラーが発生します。シート全体を調べて、この単語を含むすべての行をコピーする必要があります。
コードにコメントしたので、簡単にフォローできます。
Sub SearchForString()
Dim LSearchRow As Integer
Dim LCopyToRow As Integer
On Error GoTo Err_Execute
'Start search in row 10
LSearchRow = 11
'Start copying data to row 1 in Sheet12 (row counter variable)
LCopyToRow = 1
While Len(Range("A" & CStr(LSearchRow)).Value) <> Null
'If value in column E = "ENGINE AUXILIARY PANEL (EAP 1)", copy entire row to Sheet12
If Range("E" & CStr(LSearchRow)).Value = "13.8kV SWITCHGEAR METERING CELL #A1 (+06)" Then
'Select row in Sheet1 to copy
Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select
Selection.Copy
'Paste row into Sheet2 in next row
Sheets("Sheet14").Select
Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select
ActiveSheet.Paste
'Move counter to next row
LCopyToRow = LCopyToRow + 1
'Go back to Sheet1 to continue searching
Sheets("Sheet11").Select
End If
LSearchRow = LSearchRow + 1
Wend
Exit Sub
Err_Execute: