0
我有一個報告,其中有會話名稱分配給電子郵件地址。如果有兩個會話名稱分配給在報告中生成兩行的電子郵件地址,我想創建一個報告,其中每個電子郵件地址只有一行,而會話名稱存儲在彼此相鄰的列中。將數據從行移動到列VBA
這是我到目前爲止有:
Sub Session()
i = Sheets(1).Range("a1048576").End(xlUp).Row
l = Sheets(2).Range("a1048576").End(xlUp).Row
For k = 2 To i
For x = 2 To l
EmailReg = Sheets(1).Range("c" & k).Value
EmailAtt = Sheets(2).Range("c" & x).Value
c = Sheets(1).Range("b" & k).Value
d = Sheets(2).Range("A" & x).Value
If EmailReg = EmailAtt Then
Sheets(1).Range("D" & k).Value = Sheets(2).Range("D" & x).Value
Sheets(2).Range("c" & x).Value = ""
End If
If EmailReg = EmailAtt Then
Sheets(1).Range("E" & k).Value = Sheets(2).Range("D" & x).Value
Sheets(2).Range("c" & x).Value = ""
End If
If EmailReg = EmailAtt Then
Sheets(1).Range("f" & k).Value = Sheets(2).Range("D" & x).Value
Sheets(2).Range("c" & x).Value = ""
End If
If EmailReg = EmailAtt Then
Sheets(1).Range("g" & k).Value = Sheets(2).Range("D" & x).Value
Sheets(2).Range("c" & x).Value = ""
End If
If EmailReg = EmailAtt Then
Sheets(1).Range("h" & k).Value = Sheets(2).Range("D" & x).Value
Sheets(2).Range("c" & x).Value = ""
End If
If EmailReg = EmailAtt Then
Sheets(1).Range("i" & k).Value = Sheets(2).Range("D" & x).Value
Sheets(2).Range("c" & x).Value = ""
End If
If EmailReg = EmailAtt Then
Sheets(1).Range("j" & k).Value = Sheets(2).Range("D" & x).Value
Sheets(2).Range("c" & x).Value = ""
End If
Next
Next
End Sub
,只把在不同列中的最後一次會議名稱,以便根據需要它不工作。
輸入如下:
___ A ____|___ B ____
1 | email1 | session1
2 | email1 | session2
3 | email1 | session3
4 | email2 | session1
5 | email2 | session2
輸出應該是這樣的:
___ A ____|___ B ____|___ C ____|___ D ____
1 | email1 | session1 | session2 | session3
2 | email2 | session1 | session2 |
https://www.extendoffice.com/documents/excel/3358-excel-transpose-unique-values.html – Masoud