Fast way to generate unique strings

R

R Avery

what is the fastest VBA code to generate a list of random strings of a
specified length.

the function prototype i want is

sub GetUniqueStrings(Strings() as string, Length as long)


The one i had been using seems slow when using it to generate lots of
strings, and i was wondering if there was a way to speed it up. Thanks!




Public Function GetUniqueString(ByVal NumChars As Long) As String
Dim i As Long, str As String

GetUniqueString = Space$(NumChars)

For i = 1 To NumChars
Mid$(GetUniqueString, i, 1) = Chr(RandBetween(97, 122))
Next i

End Function

Public Function RandBetween(ByVal LB As Long, ByVal UB As Long) As Long
RandBetween = LB + Round(Rnd * (UB - LB), 0)
End Function
 
J

JE McGimpsey

Don't know about the fastest, but this returns 100 strings of 100
characters in the blink of an eye...

Public Function GetUniqueStrings( _
ByRef Strings() As String, Length As Long)
Dim i As Long
Dim j As Long
For i = LBound(Strings) To UBound(Strings)
Strings(i) = Space(Length)
For j = 1 To Length
Mid(Strings(i), j, 1) = Chr(Int(97 + Rnd() * 26))
Next j
Next i
End Function

Called as:

Public Sub try()
Dim s(1 To 100) As String
GetUniqueStrings s, 100
Range("A1").Resize(UBound(s)).Value = Application.Transpose(s)
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top