Q
VBA合併行
0
A
回答
0
第一,您必須收集未複製的數據,然後在將數據與原始數據進行比較後提取用戶數據。
Sub test()
Dim vDB, vR(), vR2(), vResult()
Dim s As String, s1 As String
Dim X As New Collection
Dim n As Long, i As Long, k As Long
Dim j As Integer, a As Long, cnt As Long
Dim Ws As Worksheet, toWs As Worksheet
Set Ws = ActiveSheet
vDB = Ws.Range("a1").CurrentRegion
n = UBound(vDB, 1)
'Collect unique data(not duplicate)
On Error Resume Next
For i = 1 To n
ReDim vR(1 To 6)
For j = 1 To 6
vR(j) = vDB(i, j)
Next j
s = Join(vR, ",")
Err.Clear
X.Add s, s
If Err.Number <> 457 Then
k = k + 1
ReDim Preserve vResult(1 To 7, 1 To k)
For j = 1 To 6
vResult(j, k) = vDB(i, j)
Next j
End If
Next i
'After compare unique data with orginal data, get data of User
For i = 1 To k
cnt = 0
ReDim vR(1 To 6)
For j = 1 To 6
vR(j) = vResult(j, i)
Next j
s = Join(vR, ",")
For a = 1 To n
ReDim vR(1 To 6)
For j = 1 To 6
vR(j) = vDB(a, j)
Next j
s1 = Join(vR, ",")
If s = s1 Then
cnt = cnt + 1
ReDim Preserve vR2(1 To cnt)
vR2(cnt) = vDB(a, 7)
End If
Next a
vResult(7, i) = Join(vR2, ",")
ReDim vR2(1 To 1)
Next i
Set toWs = Sheets.Add '<~~ change to your sheet : set tows = Sheets("Sheet2")
With toWs
.Range("a1").Resize(k, 7) = WorksheetFunction.Transpose(vResult)
.Columns.AutoFit
End With
End Sub
2
假設你的數據是正確排序,這裏是一個融合了用戶名的密碼:
Sub Merge_Usernames()
Dim i As Long, j As Long, last_row As Long
Dim b_same As Boolean
last_row = Cells(Rows.Count, 1).End(xlUp).Row
For i = last_row To 3 Step -1
b_same = True
For j = 1 To 6
If Cells(i, j).Value <> Cells(i - 1, j).Value Then
b_same = False
Exit For
End If
Next j
If b_same Then
Cells(i - 1, 7).Value = Cells(i - 1, 7).Value & ", " & Cells(i, 7).Value
Rows(i).Delete
End If
Next i
End Sub
我與您提供的樣本數據運行它,這裏是輸出:
+--------+---------+---------+---------+---------+------------+------------------------+
| Tenant | Company | Country | Channel | Licence | Expiry | User |
+--------+---------+---------+---------+---------+------------+------------------------+
| R1 | xyz | T | VS | SV-OC | 05-10-2017 | christopher33, mfeike |
| R1 | xyz | T | VS | PJ-OC | 05-10-2017 | c5311800 |
| R2 | pqr | R | PS | PJ-OC | 05-10-2017 | c5195954 |
| R2 | pqr | R | PS | SV-OC | 05-10-2017 | c5195954, jonyrebollar |
| R2 | pqr | R | PS | SV-OC | 06-10-2017 | bob |
| R4 | pqr | R | PS | ST-OC | 06-10-2017 | bob |
+--------+---------+---------+---------+---------+------------+------------------------+
+0
是的,它的工作。謝謝Mahesh :) – nitish
相關問題
- 1. 在VBA中合併行
- 2. Excel VBA - 合併
- 3. 統計在vba中合併多少行
- 4. Excel VBA:基於列值合併(SUM)行
- 5. 在Excel和VBA中合併行
- 6. VBA EXCEL在一列中合併行
- 7. 合併兩個VBA函數
- 8. Excel的VBA合併重複的行,並添加量
- 9. VBA代碼合併重複行並保留非空值?
- 10. 適合X行使用VBA
- 11. (MS Word/VBA)當文檔打開時執行郵件合併
- 12. 單擊合併單元格VBA時如何運行宏
- 13. VBA - 使用合併功能對數據進行求和
- 14. 使用VBA如何合併後自動運行Microsoft Word宏
- 15. 如何使用vba進行sumif函數(數據合併)?
- 16. EXCEL VBA - 格式化:合併,換行文本
- 17. 如何在Excel中使用VBA合併兩個(或更多)行?
- 18. Word VBA郵件與附件合併
- 19. 我想合併單元格與vba
- 20. 在VBA中循環合併單元格
- 21. VBA合併單元格與循環
- 22. VBA比較2列和合並/警察
- 23. 在VBA中合併多維數組excel
- 24. VBA - 郵件合併通過訪問
- 25. Excel VBA:合併循環內的範圍
- 26. 行合併2008
- 27. 行合併
- 28. 合併行
- 29. 合併錶行
- 30. google.visualisation.DataTable()合併行
它的工作。謝謝 :) – nitish