Sub macro1()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim xrow As Long, q As Long
Set ws1 = Workbooks("StudentData").Worksheets("Sheet1")
Set ws2 = Workbooks("NewWorkbook").Worksheets("Sheet1")
ws2.Cells(1, 2).Value = "Favourite Subjects"
ws2.Cells(1, 1).Value = "Roll no."
xrow = 2
For x = 200 To 300
If ws1.Cells(x, 1).Value = "Favourite Subjects" Then
q = x + 1
ws1.Cells(q, 1).Value = ws2.Cells(xrow, 2).Value
xrow = xrow + 1
Else:
End If
Next x
xrow = 2
For y = 200 To 300
If ws1.Cells(y, 2).Value = "Roll no." Then
ws1.Cells(y, 3).Value = ws2.Cells(y, 1).Value
xrow = xrow + 1
Else:
End If
Next y
End Sub
Просто измените имена рабочих книг и рабочих таблиц, и это должно сделать работу.Если вы получаете сообщение об ошибке, вероятно, это синтаксис для использования ws1 и ws2, потому что Excel не любит передавать данные между книгами.Это можно исправить, изменив код на:
Sub macro1()
Dim xrow As Long, q As Long
xrow = 2
For x = 200 To 300
If Cells(x, 1).Value = "Favourite Subjects" Then
q = x + 1
Cells(q, 1).Value = Cells(xrow, 6).Value
xrow = xrow + 1
Else:
End If
Next x
xrow = 2
For y = 200 To 300
If Cells(y, 2).Value = "Roll no." Then
Cells(y, 3).Value = Cells(y, 5).Value
xrow = xrow + 1
Else:
End If
Next y
End Sub
Затем скопируйте столбцы D и E и вставьте их в новый WB.