Я копирую определенные значения из Sheet3 в Sheet2, и для этого у меня есть al oop, проблема в том, что я хотел бы l oop только в ячейках. В основном, если у меня есть значения 1, 2, 3, 4 и т. Д. c. в столбце D Листа 2 я хочу l oop только в столбцах H строк, содержащих число '1'. Вот мой код.
Sub rand_v2()
Dim RNG1 As Range, RNG2 As Range, r As Range, p As Range, d As Collection, N As Long, MLRow As Long, x As Long
Set RNG1 = Sheet3.Range("A2:A500")
MLRow = Sheet2.Range("B" & Rows.Count).End(xlUp).Row
For x = 4 To MLRow
If Sheet2.Cells(x, 8).Value = vbNullString Then
Set d = New Collection
For Each r In RNG1
If r.Value <> vbNullString And Sheet3.Cells(r.Row, 4).Value = Sheet2.Cells(x, 2).Value And r.Value <> Sheet2.Cells(x - 1, 8).Value And r.Value <> Sheet2.Cells(x - 2, 8).Value And r.Value <> Sheet2.Cells(x - 3, 8).Value Then
d.Add r
N = Application.WorksheetFunction.RandBetween(1, d.Count)
d.Item(N).Copy
Sheet2.Cells(x, 8).PasteSpecial xlPasteValues
End If
Next r
Set d = Nothing
End If
Next x
End Sub