Это начало. Это грубо и готово, пропуская много ошибок, и функция LEN перестанет работать, если в ячейке будет меньше 10 символов. Но это будет перемещаться по строкам, которые соответствуют вашему шаблону:
Sub MigrateData2()
Dim intRowCount As Integer
Dim intTargetRowCount As Integer
Dim intColumnCount As Integer
Dim CheckString1 As String
Dim CheckString2 As String
intTargetRowCount = 1
For intRowCount = 1 To Range("A1").CurrentRegion.Rows.Count
CheckString1 = Cells(intRowCount, 20) ' contents of column T
CheckString2 = Cells(intRowCount, 10) ' contents of column J
If CheckString1 = "SYDNEY-NEWC" Or InStr(CheckString1, "F3") _
Or InStr(Len(CheckString1) - 10, CheckString1, "F3") > 0 _
Or CheckString2 = "SYDNEY-NEWC" Or InStr(CheckString2, "M4 MTWY") _
Or InStr(CheckString2, "F3") _
Or InStr(Len(CheckString2) - 10, CheckString2, "F3") > 0 Then
For intColumnCount = 2 To 20 ' change this last number to however many columns you have
Sheets("Sheet2").Range("A1").Cells(intTargetRowCount, intColumnCount - 1).Value = _
Sheets("Sheet1").Range("A1").Cells(intRowCount, intColumnCount).Value
Next intColumnCount
intTargetRowCount = intTargetRowCount + 1
End If
Next intRowCount
End Sub
Предположения:
- Ваши исходные данные находятся на Листе 1 и начинаются в ячейке A1
- Ваш целевой лист - Sheet2, и вы хотите начать запись данных из ячейки A1