Sub test() Dim InCell As String '输入的单元格 Dim InElementNumber As Integer '需要重新定义每行的个数 Dim Aims_Arr() As String '存放分组后数据的数组 Dim RowNumber As Integer '原始数据个数 Dim GroupNumber As Integer '原始数据根据重新定义的个数能分几组 Dim InColumn As String '输入单元格所在的列 InCell = InputBox("请输入数据所在列的某个单元格,样式如【A1】") InElementNumber = InputBox("请输入每行按多少个数字排列") RowNumber = Range(InCell).CurrentRegion.Rows.Count InColumn = Left(InCell, 1) GroupNumber = Application.Ceiling(RowNumber / InElementNumber, 1) ReDim Aims_Arr(1 To GroupNumber) b = 1'a是记数组中每个元素拼接多少值'b是记录下一次循环从哪个地方开始 For t = 1 To GroupNumber Aims_Arr(t) = "" a = 1 For i = b To RowNumber If a <> InElementNumber + 1 Then Aims_Arr(t) = Aims_Arr(t) & Range(InColumn & i).Value a = a + 1 b = b + 1 Else Exit For End If Next Next For t = 1 To GroupNumber Range("B" & t) = Aims_Arr(t) Next End Sub
设原始数据x个(100以内),分成m(小于10)组,任一原始数要在n组中重复出现。
即数据总数有xn,组有xn/m(向上取整)个原始数据。
各组中数据有没有限制和要求?仅要求重复出现次数一定和各组成员个数接近??
m InElementNumber As Integer '需要重新定义每行的个数 Dim Aims_Arr() As String '存放分组后数据的数组 Dim RowNumber As Integer '原始数据个数 Dim GroupNumber As Integ
你把数据表发给我,私信联系。