【发布时间】:2014-12-29 13:03:17
【问题描述】:
我在 A 列中有一个名称列表,我想在 C 和 D 列中列出这些名称的所有组合(不是排列)。即对于 8 个名称,我应该在 C 和 D 列中列出 28 种组合。我根本不知道如何使用 VBA,因此我们将不胜感激。谢谢
【问题讨论】:
标签: excel combinations
我在 A 列中有一个名称列表,我想在 C 和 D 列中列出这些名称的所有组合(不是排列)。即对于 8 个名称,我应该在 C 和 D 列中列出 28 种组合。我根本不知道如何使用 VBA,因此我们将不胜感激。谢谢
【问题讨论】:
标签: excel combinations
点击Alt+F11,当VBE打开时,立即使用下拉菜单插入►模块(Alt+I,M)。将以下内容粘贴到标题为 Book1 - Module1 (Code),
的新窗格中Sub name_by_name()
Dim i As Long, j As Long, lr As Long
With ActiveSheet
lr = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lr
For j = i + 1 To lr
.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) = _
.Cells(i, 1).Value & ", " & .Cells(j, 1).Value
Next j
Next i
End With
End Sub
我想象你的名单从第 2 行开始(以 A1 作为标题标签)。如果名称以 A1 开头,请将 For i = 2 To lr 更改为 For i = 1 To lr。我还用 空格逗号 分隔组合名称。如果您愿意,可以将这三行进一步向下更改。点击 Alt+Q 返回您的工作表。点击 Alt+F8 打开宏对话框并运行宏。您的结果应该类似于以下内容。
【讨论】: