В постах №2 и №3 Вам были предложены пользовательские функции, которые применялись на рабочем листе.
Если нужен именно макрос, то можно так:
Код |
---|
Sub Random()
Dim i As Long: Application.ScreenUpdating = False
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Cells(i, "H") = Randomize3(Cells(i, 1).Resize(, 7))
Next
End Sub
Function Randomize3(Rng As Range) As String
Dim a(), i As Long, j As Long, k As Long, x
a = Application.Index(Rng.Value, 1, 0)
For k = 1 To 1000
i = Int(1 + (UBound(a) * Rnd))
j = Int(1 + (UBound(a) * Rnd))
x = a(i): a(i) = a(j): a(j) = x
Next
Randomize3 = Join(a)
End Function |
Откройте прикрепленный файл и выполните макрос "Random".
В результате, в столбце "H" каждой строки в пределах рабочего диапазона (который определяется по последней заполненной строке в столбце "A") будет "смесь" из всех значений столбцов "A:G" этой строки.
Если Вам нужно что-то другое - опишите подробнее. Не экономьте слова.