vikkiv
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Spy686 ну цифрами так цифрами, числами было-бы немного замороченнее: Код: Sub testx(): Dim arr(1 To 30, 1 To 2) As Double: For i = 1 To 14: arr(i, 1) = 1: Next i: For j = 1 To 30: arr(j, 2) = Rnd(): Next j: Range("A1:B30") = arr Range(Cells(1, 1), Cells(30, 2)).Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlNo: Columns("B").Clear: End Sub | Можно конечно и в памяти всё, а потом выложить на лист, т.е. без доп столбца, но код в 2 раза больше будет, а можно и совсем без VBA, обычный генератор случайных(псевдо) чисел, а потом сортировка по столбцу. AndyKKKK Если предложения например находятся в диапазоне "А1:А7" с максимальной общей длинной базы в 50 строк {Dim arr(1 To 50, 1 To 2)} то можно сделать так (или поменять диапазон на больший и увеличить ограничение в 50 строк): Код: Sub tstx(): Dim arr(1 To 50, 1 To 2): c = 63: f = 7: Set a = Range(Cells(1, 1), Cells(f, 1)): For i = 1 To f: b = Len(a.Cells(i, 1)) If b > c Then If (b / c) - Round(b / c, 0) > 0 Then e = Round(b / c, 0) + 1 Else: e = Round(b / c): End If Else: e = 1: End If: For j = 1 To e: x = x + 1: arr(x, 2) = Mid(a.Cells(i, 1), (j * c) - c + 1, c): arr(x, 1) = i Debug.Print x & " " & arr(x, 1) & " " & arr(x, 2): Next j: Next i: End Sub | Параметр с устанавливает длинну знаков в строке, а параметр f - кол-во строк для сканирования с листа (т.е. диапазон) А как потом и куда вывод массива arr() писать (в файл или на лист) - дело второе.. | Всего записей: 747 | Зарегистр. 10-11-2005 | Отправлено: 20:44 30-11-2013 | Исправлено: vikkiv, 23:43 01-12-2013 |
|