Vba 宏以导出x>;的所有n组值组合;n范围值
我需要一个宏来导出多组值的组合。 导出梳组将比数据范围集小。 例如,假设我需要一个数据范围内3组值的所有2组值组合 数据导出 A B C___;AB AC BC B B A____;BB BA - 数据的所有值都将在不同的单元格中,每个单元格中都有一个,但combs值每次必须在一个单元格中。 此外,出口必须以水平为例 这是一个我在网上找到的代码,对我来说有点接近,但我不能编辑它来使用它Vba 宏以导出x>;的所有n组值组合;n范围值,vba,excel,Vba,Excel,我需要一个宏来导出多组值的组合。 导出梳组将比数据范围集小。 例如,假设我需要一个数据范围内3组值的所有2组值组合 数据导出 A B C___;AB AC BC B B A____;BB BA - 数据的所有值都将在不同的单元格中,每个单元格中都有一个,但combs值每次必须在一个单元格中。 此外,出口必须以水平为例 这是一个我在网上找到的代码,对我来说有点接近,但我不能编辑它来使用它 enter code here Sub comb() Dim vElements As Variant, v
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
非常感谢,对不起,我的英语不好。我想知道使用带有单元格参考的新表/范围是否更方便 (=Sheet1!A1&Sheet1!B1))这是三行,然后复制 次级出口_01() Dim aStart,aExport Dim aRow为整数
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
End Sub()在我看来,这只是使用了第二个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)
--
--
下一个ii
接下来,我您真的需要尝试编写一些东西,并发布您的代码(即使它不起作用)以及您遇到的问题的描述。通常情况下,那些仅仅陈述了一组需求的问题——没有任何证据表明你确实试图提出解决方案——会很快在这里结束。为了帮助你解决(如果你想知道这个问题叫什么),在谷歌搜索“vba字符串排列”(或组合)。祝你好运谢谢大家的回复。我忘了说我是vba宏新手。这是我的新爱好。对我来说,从一开始就编写代码是非常困难的。我只能根据我的需要编辑一些我在网上找到的简单代码。但是对于这个项目,我还没有找到适合我需要的东西。Thamks Hatek,谢谢你的回复。你的代码完全导出我想要什么,但只适用于一小部分数字。只有我知道组合位置并将它们添加到您的代码手册中,我才能使用它。问题在于大量组合。例如6个值为12的组合。再次感谢您的回复。再次感谢hatek的回复。我相信此代码对我有效。我测试了它这只需要将第一个值与其余值结合起来。如果在你的代码中我不理解的是如何结合例如12组值中的6组值(即924梳)?你能发布这个示例的所有代码吗?