На Листе 1 у меня есть набор данных с колонкой А, показывающей имена и колонкой Б семейное положение.Я хотел бы вывести имя, основанное на семейном положении, на Sheet2, где у меня есть предопределенная панель инструментов (A1 может быть началом таблицы)
Набор данных будет динамическим и будет увеличиваться при каждом запуске vba
![raw set of data](https://i.stack.imgur.com/EEtwE.png)
что бы я хотел, чтобы выходные данные были
![what I'd like the output data to be](https://i.stack.imgur.com/tskDI.png)
Не могли бы вы помочь в коде vba для этого выхода?спасибо за продвинутый
* Обновление, вот код, который у меня есть ... который работает, но хотел бы получить информацию об эффективности кода
Dim K As Long, r As Range, v As Variant
K = 1
Dim w1 As Worksheet, w2 As Worksheet
Set w1 = Sheets("Sheet1")
Set w2 = Sheets("Sheet2")
w1.Activate
For Each r In Intersect(Range("B:B"), ActiveSheet.UsedRange)
v = r.Value
If InStr(v, "Divorced") > 0 Then
r.Offset(, -1).Copy w2.Cells(K + 3, 2)
K = K + 1
End If
Next r
K = 1
For Each r In Intersect(Range("B:B"), ActiveSheet.UsedRange)
v = r.Value
If InStr(v, "Married") > 0 Then
r.Offset(, -1).Copy w2.Cells(K + 3, 3)
K = K + 1
End If
Next r
K = 1
For Each r In Intersect(Range("B:B"), ActiveSheet.UsedRange)
v = r.Value
If InStr(v, "Single") > 0 Then
r.Offset(, -1).Copy w2.Cells(K + 3, 4)
K = K + 1
End If
Next r
K = 1
For Each r In Intersect(Range("B:B"), ActiveSheet.UsedRange)
v = r.Value
If InStr(v, "Widowed") > 0 Then
r.Offset(, -1).Copy w2.Cells(K + 3, 5)
K = K + 1
End If
Next r