一意の値 (A) の列と、一意の値のセット (B) と別の値 (C) の値を含む列の 2 番目のセットがあります。
基本的に、私がやろうとしているのは、すべての一意の値 A をループしてから、A から同じ値を複数回持つ可能性のある B を通過する内部ループを持ち、一致が見つかるたびに値を追加することです ( C)連結された文字列に変換し、それらの値がすべて見つかったら、それを新しいセルに挿入し、次の A 値に移動して同じことを行います。
さまざまなエラーが発生し、これをいくつかの方法で試しましたが、VBA をまったく使用していないため、そこに到達できず、これに関する適切な情報が見つかりませんでした。
これを行う方法についてのヘルプやアイデアは役に立ちます。以下は私が使用しているコードです。
これは基本的にスプレッドシートがどのように見えるかです
Column A ----- Column B -------- Column C
A-----------------A---------------stringA
A-----------------A --------------stringB
C-----------------B---------------stringC
したがって、私の新しい列では、列 AI の隣に stringA、stringB が挿入されます。
うまくいけば、それは理にかなっています。
Sub contactStuff()
Dim roleName As String
Dim rowNumber As Integer
Dim userName As String
Dim userRoleName As String
Dim concatString As String
Dim roleNumber As Integer
roleNumber = 2
rowNumber = 2
For Each c In Worksheets("parentRoles").Range("C2:C856").Cells
roleName = c.Value
Do
userRoleName = Worksheets("parentRoles").Range("G" & rowNumber)
If userRoleName = roleName Then
contactString = concatString & ", " & Worksheets("parentRoles").Range("E" & rowNumber)
rowNumber = rowNumber + 1
End If
Loop While userRoleName = roleName
Worksheets("parentRoles").Range("D" & roleNumber).Value = concatString
Next
End Sub