Этот VBa делает то, что я думаю, что вы хотите ... Ваш вопрос не самый ясный.
Помните, что с VBa сначала создайте копию файла, так как он не имеет функции отмены
Option Explicit Sub FindYeTheMapOfTreasure() Worksheets("Sheet2").Range("A:F").Clear Worksheets("Sheet2").Range("A:B").Value = Worksheets("Sheet1").Range("A:B").Value Dim row As Integer row = 2 Do While Worksheets("Sheet1").Range("C" & row).Value <> "" If Worksheets("Sheet1").Range("C" & row).Value = "Y" Then Worksheets("Sheet2").Range("C:C").Value = Worksheets("Sheet1").Range("C:C").Value End If If Worksheets("Sheet1").Range("D" & row).Value = "Y" Then Worksheets("Sheet2").Range("D:D").Value = Worksheets("Sheet1").Range("D:D").Value End If If Worksheets("Sheet1").Range("E" & row).Value = "Y" Then Worksheets("Sheet2").Range("E:E").Value = Worksheets("Sheet1").Range("E:E").Value End If If Worksheets("Sheet1").Range("F" & row).Value = "Y" Then Worksheets("Sheet2").Range("F:F").Value = Worksheets("Sheet1").Range("F:F").Value End If If Worksheets("Sheet1").Range("G" & row).Value = "Y" Then Worksheets("Sheet2").Range("G:G").Value = Worksheets("Sheet1").Range("G:G").Value End If row = row + 1 Loop End Sub
Лист1
После запуска sheet2 выглядит