|
西虹网
西虹网 楼主,你好!这个是没法使用函数公式解决的,还是建议楼主使用VBA程序进行处理。WPS官网下载https://www.wpssoft.com/download.html欢迎来到wps官网,这里提供最新版WPS下载,最新WPS OFFICE办公软件及其全部组件的免费WPS下载服务。作为国内领先的办公软件,WPS电脑版集成了文字处理、电子表格和演示文稿等多种功能,完美满足您的日常办公需求。WPS界面简洁直观,操作便捷,即使是办公新手也能快速上手。WPS下载到电脑上,您将享受最新功能和安全保障。 西虹网
西虹网 西虹网
西虹网 西虹网
西虹网 (一)VBA程序代码如下:(写代码不易,望笑纳) 西虹网
西虹网 西虹网
西虹网 Sub ZuHe_xxx() 西虹网
西虹网 西虹网
西虹网 Dim i1, i2, i3, MyArray(100), str, Rn 西虹网
西虹网 西虹网
西虹网 On Error Resume Next 西虹网
西虹网 西虹网
西虹网 Set Mysheet1 = ThisWorkbook.Worksheets("Sheet1") 西虹网
西虹网 西虹网
西虹网 Mysheet1.Range("H1:H1000") = "" 西虹网
西虹网 西虹网
西虹网 For i1 = 1 To 1000 西虹网
西虹网 西虹网
西虹网 str = "" 西虹网
西虹网 西虹网
西虹网 Randomize '初始化随机数 西虹网
西虹网 西虹网
西虹网 Erase MyArray '初始化数组 西虹网
西虹网 西虹网
西虹网 For i2 = 1 To 7 西虹网
西虹网 西虹网
西虹网 If Mysheet1.Cells(i1, i2) <> "" Then 西虹网
西虹网 西虹网
西虹网 For i3 = 0 To 1000000 西虹网
西虹网 西虹网
西虹网 Rn = Int(Rnd() * 7 + 1) '生成1-7的随机数 西虹网
西虹网 西虹网
西虹网 If UBound(Filter(MyArray, Rn)) <> 0 Then '如果生成的随机数不重复,则 西虹网
西虹网 西虹网
西虹网 MyArray(i2) = Rn 西虹网
西虹网 西虹网
西虹网 str = str & Mysheet1.Cells(i1, Rn) 西虹网
西虹网 西虹网
西虹网 Exit For 西虹网
西虹网 西虹网
西虹网 End If 西虹网
西虹网 西虹网
西虹网 Next 西虹网
西虹网 西虹网
西虹网 End If 西虹网
西虹网 西虹网
西虹网 Next 西虹网
西虹网 西虹网
西虹网 Mysheet1.Cells(i1, 8) = str 西虹网
西虹网 西虹网
西虹网 Next 西虹网
西虹网 西虹网
西虹网 End Sub 西虹网
西虹网 西虹网
西虹网 (二)程序的运行结果如下截图: 西虹网
西虹网 西虹网
西虹网 【注】程序运行之前请做好数据备份,以免丢失。 西虹网
西虹网 西虹网
西虹网 有些复杂,最好不要难为公式。 西虹网
西虹网 西虹网
西虹网 组合算法出来很多 |
|