Заменить шаг 2 этим оператором if? - PullRequest
0 голосов
/ 06 марта 2019

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...