Excel formula 在excel中创建所有可能的数字组合

Excel formula 在excel中创建所有可能的数字组合,excel-formula,Excel Formula,我想在excel中输入一个数字,然后给我4位数的组合。我怎么做?我就这样进了8,给我 2 2 3 2 1 5.1 等 运行subphoniX(): 制作: 运行子phoniX(): 制作: 我不确定配方奶粉是否可行,也怀疑它是否可行。这将需要VBA。您是否需要将5 1 1 1 1与1 5 1 1 1分开?情况如何?请阅读一些提问指南:。主要的问题是,你的解决方案在哪里?加里的学生没有。我不确定公式是否可行,并且怀疑它是否可行。这将需要VBA。您是否需要将5 1 1 1 1与1 5 1 1 1分开

我想在excel中输入一个数字,然后给我4位数的组合。我怎么做?我就这样进了8,给我

2
2 3 2 1
5.1

运行sub
phoniX()

制作:

运行子
phoniX()

制作:


我不确定配方奶粉是否可行,也怀疑它是否可行。这将需要VBA。您是否需要将5 1 1 1 1与1 5 1 1 1分开?情况如何?请阅读一些提问指南:。主要的问题是,你的解决方案在哪里?加里的学生没有。我不确定公式是否可行,并且怀疑它是否可行。这将需要VBA。您是否需要将5 1 1 1 1与1 5 1 1 1分开?情况如何?请阅读一些提问指南:。关键是,你们的解决方案在哪里?加里的学生不,我不感谢你们让我开心的那个人,工作了!谢谢你,伙计,你让我开心了。工作了!
Sub phoniX()
    Dim N As Long, ary(1 To 4) As Long

    N = Application.InputBox(prompt:="enter value", Type:=1)
    xxx = 1

    For i = 0 To N
        For J = 0 To N
            For k = 0 To N
                For l = 0 To N
                    If i + J + k + l = N Then
                        ary(1) = i
                        ary(2) = J
                        ary(3) = k
                        ary(4) = l
                        Call LittleSort(ary())
                        Cells(xxx, 1).Value = "'" & ary(1) & ary(2) & ary(3) & ary(4)
                        xxx = xxx + 1
                    End If
                Next l
            Next k
        Next J
    Next i

    Range("A:A").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub

Public Sub LittleSort(ByRef InOut)

    Dim i As Long, J As Long, Low As Long
    Dim Hi As Long, Temp As Variant

    Low = LBound(InOut)
    Hi = UBound(InOut)

    J = (Hi - Low + 1) \ 2
    Do While J > 0
        For i = Low To Hi - J
          If InOut(i) > InOut(i + J) Then
            Temp = InOut(i)
            InOut(i) = InOut(i + J)
            InOut(i + J) = Temp
          End If
        Next i
        For i = Hi - J To Low Step -1
          If InOut(i) > InOut(i + J) Then
            Temp = InOut(i)
            InOut(i) = InOut(i + J)
            InOut(i + J) = Temp
          End If
        Next i
        J = J \ 2
    Loop
End Sub