WPS如何将一排单元格内容组合成一个随机顺序的文本?
发布网友
发布时间:2022-04-30 11:26
我来回答
共3个回答
热心网友
时间:2022-06-21 17:53
楼主,你好!这个是没法使用函数公式解决的,还是建议楼主使用VBA程序进行处理。(由于WPS个人免费版不能使用VB功能,那就改用其他版本进行处理)
(一)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
(二)程序的运行结果如下截图:
【注】程序运行之前请做好数据备份,以免丢失。
追问如果需要增加一列或删除一列。代码应该怎么修改呢?谢谢
追答
H列往后增加1列或递减1列,把里面的数值7和8加1或减1,如:增加1列
Mysheet1.Range("I1:I1000") = ""
For i2 = 1 To 8
Rn = Int(Rnd() * 8 + 1) '生成1-8的随机数
Mysheet1.Cells(i1, 9) = str
热心网友
时间:2022-06-21 17:53
有些复杂,最好不要难为公式。
热心网友
时间:2022-06-21 17:54
组合算法出来很多