Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Fast way to generate unique strings
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 |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Fast way to generate unique strings
I'm curious to see what you've been using.
Doug Glancy "R Avery" wrote in message ... 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 |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Fast way to generate unique strings
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 In article , R Avery wrote: 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) |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
how do I generate a unique reference number??? | Excel Discussion (Misc queries) | |||
generate unique random numbers | New Users to Excel | |||
Fast way to search many cells by column for text strings | Excel Discussion (Misc queries) | |||
counting unique strings | Excel Discussion (Misc queries) | |||
Automatically Generate a unique file name... | Excel Programming |