【发布时间】:2017-08-28 15:19:28
【问题描述】:
所以让我解释一下我要做什么。我有一个包含两列的事件列表:事件 ID 和来宾。在“客人”字段中,我有该特定活动的每个参与者的电子邮件,用逗号分隔。每个活动都有不同数量的参与者。我需要的是列出每个活动的所有可能的客人组合。它看起来像这样:
假设在一次会议中,参与者是 A、B、C、D
这代表以下独特的 1:1 连接
AB
AC
AD
BC
BD
CD
你们中有人知道可以得到这个输出的代码吗?
@Gary 的学生,谢谢!
这是我拥有的,但它无法正常工作。
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
【问题讨论】:
-
算法或代码有问题吗?如果是第一个 - 这不适合问,如果是第二个 - 告诉我们你做了什么。
标签: vba excel combinations