如何让excel自动排列组合

发布网友 发布时间:2022-04-23 02:22

我来回答

4个回答

热心网友 时间:2023-10-11 14:05

使用vba实现

自动排列组合,生成排列组合的列数,手动输入

然后从第二行第一列开始生成每列数据,每列数据数字不重复,数量随机。

实现代码如下:

Sub 按钮1_Click()
    Application.ScreenUpdating = False
    ActiveSheet.UsedRange.ClearContents '清空表格
    a = InputBox("请输入产生序列的列数") '提示输入列数
    Set d = CreateObject("scripting.dictionary") '字典去重
    If VBA.IsNumeric(a) Then '判断输入的是否是数值,不是则跳出程序
        Randomize '初始化随机数
        
        For j = 1 To Int(a) '生成输入列数的随机数
            b = Int(Rnd * 99999) Mod 10 + 1 ' 每列产生随机数的数量
            d.RemoveAll
l2:
            If d.Count <> b Then '生成随机数
                d(Int(Rnd * 99999) Mod 10) = ""
                GoTo l2
            End If
            Cells(2, j).Resize(d.Count) = WorksheetFunction.Transpose(d.keys) '将随机数存入相应列里
        Next j
    Else
        MsgBox "请输入数值"
        GoTo l1
    End If
l1:
    Application.ScreenUpdating = True
End Sub

程序执行效果:


热心网友 时间:2023-10-11 14:06

选中列 自定义排序 选中要排序的列 主要的在第一个 。。。

热心网友 时间:2023-10-11 14:06

你的问题是一个排列遍历,用 Excel 中的 VB 编程实现可能效率高一些。

热心网友 时间:2023-10-11 14:07

如何利用EXCEL解决排列组合问题_百度经验 http://jingyan.baidu.com/article/20095761879734cb0721b4ef.html

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com