使用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
程序執行效果: