Добрые мальчики, я на Вашем очень полезном форуме нашла в одной из тем файлик, в котором случайно выбиралось значение из столбца А.
Мне этот файлик очень подходит. Но можно ли его дополнить так, чтобы случайно выбранные значения из столбца А вставлялись в столбец В? Допустим, 50 случайно выбранных значений.
То есть вот код. Первый я взяла с этого сайта, а второй уж сама смогла кое-как написать.
можно их как-то объединить?
Option Explicit
Sub Макрос2()
Dim iRow As Long
Dim iLastRow As Long
Dim FoundRng As Range
Dim Finish As Boolean
Randomize
With Sheets("РабочийЛист")
Do
iRow = Int((100 * Rnd) + 1)
Set FoundRng = .Range("A1:A100").Find(iRow, , xlFormulas, xlWhole)
If FoundRng Is Nothing Then
iLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
If iLastRow < 101 Then
If iLastRow > 1 Or Not IsEmpty(.Cells(1, 1)) Then iLastRow = iLastRow + 1
.Cells(iLastRow, 1) = iRow
If iLastRow = 100 Then .Range("A1:A100").ClearContents
End If
MsgBox Cells(iRow, 1).Address(0, 0)
Finish = True
End If
Loop While Finish = False
End With
End Sub
Sub TEST()
Dim i As Integer
For i = 1 To 50
Range("B" & i).Value = Range("A" & i).Value
Next i
End Sub
Мне этот файлик очень подходит. Но можно ли его дополнить так, чтобы случайно выбранные значения из столбца А вставлялись в столбец В? Допустим, 50 случайно выбранных значений.
То есть вот код. Первый я взяла с этого сайта, а второй уж сама смогла кое-как написать.
можно их как-то объединить?
Option Explicit
Sub Макрос2()
Dim iRow As Long
Dim iLastRow As Long
Dim FoundRng As Range
Dim Finish As Boolean
Randomize
With Sheets("РабочийЛист")
Do
iRow = Int((100 * Rnd) + 1)
Set FoundRng = .Range("A1:A100").Find(iRow, , xlFormulas, xlWhole)
If FoundRng Is Nothing Then
iLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
If iLastRow < 101 Then
If iLastRow > 1 Or Not IsEmpty(.Cells(1, 1)) Then iLastRow = iLastRow + 1
.Cells(iLastRow, 1) = iRow
If iLastRow = 100 Then .Range("A1:A100").ClearContents
End If
MsgBox Cells(iRow, 1).Address(0, 0)
Finish = True
End If
Loop While Finish = False
End With
End Sub
Sub TEST()
Dim i As Integer
For i = 1 To 50
Range("B" & i).Value = Range("A" & i).Value
Next i
End Sub