u / Ahmed AU помог мне, отредактировав опубликованный мной скрипт, который достигает этого: в Sheet3
возьмите набор данных и Step 2
для каждых двух строк и перенесите его в ячейку dest
в Sheet2
.Это работает чудесно.
Я хотел бы заменить Step 2
на оператор IF, который объединяет строки только в том случае, если имя сотрудника в столбце A совпадает со значением.Пример: в A2 и A3 оба имеют сотрудника 1, поэтому объедините две строки и перенесите их в диапазон dest
.Если A2 <> A3, то транспонировать их отдельно.Как мне отредактировать этот скрипт, чтобы транспонировать только одинаковые значения вместе, а затем обрабатывать их отдельно, если значения не равны?Я думал, что заявление If Data(i,1) <> Last Then
сработает, но я не знаю, где его разместить, и мне нужно достать кусок Step 2
.
Sub Main()
Dim wb As Workbook
Dim Data, Last, Mgr
Dim Rw As Long, Col As Long
Dim i As Long, k As Long, j As Long
Dim Dest As Range, TmpArr As Variant
Set wb = ThisWorkbook
Set Dest = wb.Sheets("Sheet2").Range("E1")
With ThisWorkbook.Sheets("Sheet3")
Data = .Range("ed2", .Range("A" & Rows.Count).End(xlUp))
End With
Last = Data(i, 1)
Rw = -1
For i = LBound(Data, 1) To UBound(Data, 1) Step 2
k = 1
If i = UBound(Data) Then k = 0
For Col = LBound(Data, 2) To UBound(Data, 2)
Rw = Rw + 1
For j = 0 To k
Dest.Offset(Rw, j).Value = Data(i + j, Col)
Next j
Next Col
Next i
End Sub