如何让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