我需要一个宏来从一系列多个值中导出组合。 出口梳子组将比数据范围集更加精确。 例如,我可以说我需要数据范围内3组值的所有2组值组合。
DATA ____ EXPORT
A B C____ AB AC BC
-
数据的所有值都是每个不同的cels,但梳子值每次必须在一个单元格中。 此外,出口必须在地平线上作为例子。
这是一个代码,在网上ifound对我很近,但我不能编辑它来使用它。
enter code here
Sub comb()
Dim vElements As Variant, vresult As Variant
Dim lRow As Long, i As Long
vElements = Application.Transpose(Range("A1", Range("A1").End(xlDown)))
Columns("C:Z").Clear
lRow = 1
For i = 1 To UBound(vElements)
ReDim vresult(1 To i)
Call CombinationsNP(vElements, i, vresult, lRow, 1, 1)
Next i
End Sub
Sub CombinationsNP(vElements As Variant, p As Long, vresult As Variant, lRow As Long,
iElement As Integer, iIndex As Integer)
Dim i As Long
For i = iElement To UBound(vElements)
vresult(iIndex) = vElements(i)
If iIndex = p Then
lRow = lRow + 1
Range("C" & lRow).Resize(, p) = vresult
Else
Call CombinationsNP(vElements, p, vresult, lRow, i + 1, iIndex + 1)
End If
Next i
End Sub
非常感谢,对不起我的英语。
答案 0 :(得分:0)
我想知道使用带有单元格引用的新Sheet / Range是否更方便
((= Sheet1!$ A1& Sheet1!B1)) 这是三行然后复制
Sub Sub export_01()
Dim aStart,aExport Dim aRow As Integer
aRow = ActiveSheet.Range("A65536").End(xlUp).Row
aStart = 1
aExport = 5
For i = 1 To aRow
Cells(i, aExport).Value = Cells(i, aStart) & Cells(i, aStart + 1)
Cells(i, aExport + 1).Value = Cells(i, aStart) & Cells(i, aStart + 2)
Cells(i, aExport + 2).Value = Cells(i, aStart + 1) & Cells(i, aStart + 2)
Next i
结束Sub()
答案 1 :(得分:0)
在我看来,这只是使用第二个for循环
dim aStartend = 1
对于i = 1到aRow
For ii = 0 To 5 ' starts whist 0 to 5 = 6 time
Cells(i, aExport+ii).Value = Cells(i, aStart) & Cells(i,aStartend + ii)
- - 下一个
下一个