У меня есть определенный диапазон данных. Ниже пример данных:Excel VBA - Loop Transpose
PAT PID 0 Min 3001
PAT PID 0 Mean 3754
PAT PID 0 Max 4542
CAT PID 1 Min 15004
CAT PID 1 Mean 15040
CAT PID 1 Max 15141
EMM PID 201 Min5
EMM PID 201 Mean 584120
EMM PID 201 Max 1339633
И я хотел бы перенести данные следующим образом:
PAT PID 0 3001 3754 4542
CAT PID 1 15004 15040 15141
EMM PID5 584120 1339633
я нашел подобную ситуацию, выложенные на форуме ранее (как показано ниже)
VBA Code - Copy and Transpose paste with specific conditions
К сожалению, я получаю эту ошибку "error 9: Subscript out the range.". Я проверил имя листа и отладил все, но не повезло.
Edited
В соответствии с просьбой ниже код я попытался б:
Sub test()
Dim Dic As Object: Set Dic = CreateObject("Scripting.Dictionary")
Dim CLa As Range, CLb As Range, x&, Names$, ID$, Key
x = Sheets("Sheet3").Cells(Rows.Count, "A").End(xlUp).Row
For Each CLa In Sheets("Sheet3").Range("A1:A" & x)
If Not Dic.exists(CStr(CLa.Value)) Then
ID = CLa.Value
For Each CLb In Sheets("Sheet3").Range("A1:A" & x)
If CLb.Value = ID Then
If Names = "" Then
Names = CLb.Offset(, 1).Value
Else
Names = Names & "," & CLb.Offset(, 1).Value
End If
End If
Next CLb
Dic.Add ID, Names
End If
ID = Empty: Names = Empty
Next CLa
x = 1
For Each Key In Dic
Sheets("Sheet2").Cells(x, 1).Value = Key
Sheets("Sheet2").Range(Cells(x, 2), Cells(x, 4)) = Split(Dic(Key), ",")
x = x + 1
Next Key
Sheets("Sheet2").Cells.Replace "#N/A", Replacement:=""
End Sub
Какой код вы используете? Можете ли вы разместить его, пожалуйста? Также сообщите нам, какая строка выдает ошибку. – BruceWayne
Еще не видели вашего кода. Но вот решение очень похожей проблемы. Также посмотрите на другие ответы в том же сообщении. http://stackoverflow.com/a/41031394/1651993 – nightcrawler23
перейдите в свой код с F8 и сообщите нам, какая строка находится на – User632716