我有一個看起來像這樣的電子表格 -

當按下按鈕時,它使用此代碼從 A 列和 B 列的串聯中向我提供 C 列中的唯一值
Dim Ary As Variant
Dim r As Long
Ary = Range("A2:B" & Range("A" & Rows.Count).End(xlUp).Row).Value2
With CreateObject("scripting.dictionary")
For r = 1 To UBound(Ary)
.Item(Ary(r, 1) & " " & Ary(r, 2)) = Empty
Next r
Range("C2").Resize(.Count).Value = Application.Transpose(.Keys)
End With
End Sub
我想修改我的電子表格,所以它看起來像這樣 - 
我一直在試圖弄清楚如何將 C 列中的第一個描述行放置在 E 列中,以符合其唯一值。輸出看起來像這樣 -
這樣,即使其中一些代碼有多個獨特的描述,也只有第一個描述放在 E 列中。關于如何解決這個問題的任何建議將不勝感激。
uj5u.com熱心網友回復:
一些小的調整真的:
Sub Test()
Dim arr As Variant, lr As Long, x As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
arr = Range("A2:C" & lr).Value
With CreateObject("scripting.dictionary")
For x = LBound(arr) To UBound(arr)
If .Exists(arr(x, 1) & " " & arr(x, 2)) Then
'We don't want to overwrite in this case!
Else
.Item(arr(x, 1) & " " & arr(x, 2)) = arr(x, 3)
End If
Next
Range("D2").Resize(.Count).Value = Application.Transpose(.Keys)
Range("E2").Resize(.Count).Value = Application.Transpose(.Items)
End With
End Sub
請注意,您仍在使用這樣的隱式作業表參考,這意味著您始終應該使用當時處于活動狀態的作業表。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/338655.html
下一篇:Excel按多個條件過濾表格值
