|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.03.2011, 18:45 | #1 |
Новичок
Джуниор
Регистрация: 25.03.2011
Сообщений: 1
|
Жеребьевка (раскидать по парам и по тройкам)
Есть макрос, который раскидывать случайно по парам числа, слова, имена не суть.
Что нужно изменить, что бы раскидывалось с критерием: т.е. допустим 16 ячеек и необходимо, что бы 1 по 8 ячейки не попали в себя в пару и с 8 по 16, тоже, а остальные варианты приемлимы. И хотелось бы знать по тройкам можно так раскидать? Смысл ясен к примеру 15 ячеек и нужно чтобы 1 по 5, 5 по 10, 10 по 15, не попали в одну строку. Это как футбольная жеребьевка с корзинами. Sub РаскидатьПоПарам() Dim iI, iAllRecordsCount, iFirstRow, iFirstColumn As Integer Dim iItogColumn, iItogRow, iRestCount As Integer iAllRecordsCount = Selection.Count 'Response = MsgBox(iAllRecordsCount) iFirstRow = Selection.Row iFirstColumn = Selection.Column 'Response = MsgBox(iFirstRow) 'Response = MsgBox(iFirstColumn) iRestCount = iAllRecordsCount iItogColumn = 1 iItogRow = 1 While iRestCount > 0 Randomize iI = Int((iAllRecordsCount * Rnd) + 1) 'Response = MsgBox(Selection.Cells(iI, 1).Value) If Selection.Cells(iI, 1).Value <> "" Then Range(Cells(iFirstRow + iItogRow, iFirstColumn + iItogColumn), _ Cells(iFirstRow + iItogRow, iFirstColumn + iItogColumn)).Value _ = Selection.Cells(iI, 1).Value Selection.Cells(iI, 1).Value = "" iRestCount = iRestCount - 1 If iItogColumn = 2 Then iItogColumn = 1 iItogRow = iItogRow + 1 Else iItogColumn = 2 End If End If 'Response = MsgBox(Selection.Cells(iI, iFirstColumn)) 'Response = MsgBox(Selection.Cells(iI, 1)) 'Dim MyValue 'Randomize ' Initialize random-number generator. 'MyValue = Int((6 * Rnd) + 1) ' Generate random value between 1 and 6. Wend End Sub |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Раскидать 2 формы на 2 монитора | ArtGrek | Общие вопросы Delphi | 19 | 08.03.2011 22:12 |
Раскидать данные по ячейкам | BoRRuS | Microsoft Office Excel | 3 | 20.05.2010 23:48 |
Цикл по тройкам | RamilFaz | Общие вопросы C/C++ | 1 | 08.04.2010 01:00 |
Диапазон раскидать по ячейкам | bysteps | Microsoft Office Excel | 7 | 20.03.2010 23:31 |