Paste this to the code module of the respective sheet and run the macro.
Code:Sub RandLookUp() Dim lng As Long Dim lngMax As Long: lngMax = Range("L5").Value Dim lngMin As Long: lngMin = Range("K5").Value Dim strNames(1 To 5000) As String With CreateObject("Scripting.Dictionary") Do While .Count <= Range("K7").Value 'lngMax - lngMin 'removed the greater than symbol lng = Rnd * (lngMax - lngMin) + lngMin 'removed the +1 .Item(lng) = Empty Loop lngMin = Empty For lng = 1 To Range("J10:J18").Rows.Count If Not IsEmpty(Range("J10:J18").Cells(lng, 1)) Then For lngMax = 1 To Range("J10:J18").Cells(lng, 2).Value lngMin = lngMin + 1 strNames(lngMin) = Range("J10:J18").Cells(lng, 1).Value Next lngMax End If Next lng Range(Range("A2"), Cells(Rows.Count, 1).End(xlUp)).Resize(, 4).ClearContents Range("A2").Resize(Range("K7").Value).Value = Application.Transpose(.Keys) Range("B2").Resize(Range("K7").Value, 2).Formula = "=VLOOKUP($A2,Sheet1!$A:B,COLUMN(),0)" Range("D2").Resize(Range("K7").Value).Value = Application.Transpose(strNames) End With End Sub




Reply With Quote
Bookmarks