2017-08-28 1 views
-1

私がしようとしていることを説明しましょう。イベントIDとゲストの2つの列を持つイベントのリストがあります。ゲストフィールドには、特定のイベントのすべての参加者の電子メールがカンマで区切られています。各イベントには参加者数が異なります。私が必要とするのは、各イベントの可能なすべてのゲストの組み合わせをリストすることです。それは次のようになります。コンマで区切られたセル内の文字列の可能な組み合わせのリストを作成する方法

は1回の会議で参加者は、B、C、D

ある。これは、以下の固有の1を表すと仮定:1接続

AB 
AC 
AD 
BC 
BD 
CD 

をあなたがたのうち、知っていますかこの出力に到達する可能性のあるコード?

@ Gary's Studentありがとう!

これは私が持っているものですが、正しく動作しません。

Excel table

Sub test1() 


Set l1 = Worksheets("Sheet1").Range("A1:AZ10000").Find("Event ID", lookat:=xlPart) 'Location of event id field 
Set l2 = Worksheets("Sheet1").Range("A1:AZ10000").Find("Participants123", lookat:=xlPart) 'Location of guests field 
Last = Worksheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row 
Dim c As Double 
Dim l As Double 
l = l2.Row + 1 



For i = 1 To Last 

    last1 = Sheet1.Cells(l, l2.Column).End(xlToRight).Column 
    c = Application.Combin(last1 - 3, 2) 
    Rows(l + 1 & ":" & l + c - 1).Insert 
'Dim N As Long, i As Long, j As Long, K As Long 
    N = last1 
    K = l 
    For b = 4 To N - 1 
     For j = b + 1 To N 
      Cells(K, 2).Value = Cells(l, b).Value 
      Cells(K, 3).Value = Cells(l, j).Value 
      K = K + 1 
     Next j 
    Next b 
    l = l + c 



Next i 

End Sub 

! (http://imgur.com/72nW9uR

+0

アルゴリズムやコードに問題はありますか?最初のものであれば、これは頼むべき適切な場所ではなく、2番目のものであれば、あなたがしたことを私たちに見せてください。 – avb

答えて

2

置き列で名前をし、このような何かを実行します。

Sub dural() 
Dim N As Long, i As Long, j As Long, K As Long 
    N = 4 
    K = 1 
    For i = 1 To N - 1 
     For j = i + 1 To N 
      Cells(K, 2).Value = Cells(i, 1).Value & Cells(j, 1).Value 
      K = K + 1 
     Next j 
    Next i 
End Sub 

enter image description here

これはあなただけなのでABCが考慮されていないのペアを必要とすることを前提としています。また、ABBAが同じであると仮定します。

+0

ゲーリーより!私はコードを修正しようとしましたが、理由がないために動作しません。あなたは上記の投稿に私が何を持っているかを見ることができます。コードが機能しない理由についてご意見がありましたらお知らせください。 – Alex

関連する問題