怎么产生由数字和英文字母组成的随机序列号

如何产生由数字和英文字母组成的随机序列号
如何产生由数字和英文字母组成的随机序列号
比如:
1WDR45E5I
3R5JIRWWE3B33
4RTY464FERLJT8I

这样一个序列,主要是用在产品的序列号上,一个产品用一个序列号,长度固定或可变都可以,要能产生无数个随机序列号.请各位大侠帮帮忙,小弟VB只懂皮毛.

------解决方案--------------------
把你要出现的字母放入数组中,用RND得到数组下标。即可。
在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子。

为了生成某个范围内的随机整数,可使用以下公式:

Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。

------解决方案--------------------
Private Sub Command1_Click()
Dim s As String, t As String
Dim i As Long, nlen As String, n As Long
s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ "
nlen = 16 '计算16位长度的随机串
For i = 1 To nlen
n = CLng(Rnd * 35 + 1)
t = t & Mid(s, n, 1)
Next
Debug.Print t
Print t
End Sub

------解决方案--------------------
由yachong(蚜虫) 修改:
Private Sub Command1_Click()
Dim s As String, t As String
Dim i As Long, nlen As String, n As Long
Randomize
s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ "
nlen = 16 '计算16位长度的随机串
For i = 1 To Rnd * 35 + 1
n = CLng(Rnd * 35 + 1)
t = t & Mid(s, n, 1)
Next
Print t
End Sub

------解决方案--------------------
Option Explicit

Private Declare Function CoCreateGuid Lib "ole32.dll " (pGuid As GUID) As Long
Private Declare Function StringFromGUID2 Lib "ole32.dll " (pGuid As GUID, ByVal PointerToString As Long, ByVal MaxLength As Long) As Long
Private Const GUID_OK As Long = 0
Private Type GUID
Guid1 As Long
Guid2 As Integer
Guid3 As Integer
Guid4(0 To 7) As Byte
End Type
Public Function CreateGUIDKey() As String
Const GUID_LENGTH As Long = 38
Dim udtGUID As GUID
Dim strFormattedGUID As String
Dim lngResult As Long
lngResult = CoCreateGuid(udtGUID)
If lngResult = GUID_OK Then
strFormattedGUID = String$(GUID_LENGTH, 0)
StringFromGUID2 udtGUID, StrPtr(strFormattedGUID), GUID_LENGTH + 1
Else
strFormattedGUID = " "
End If
CreateGUIDKey = strFormattedGUID
End Function


调用:
dim code as string
code=CreateGUIDKey

code就是全球唯一序列号了,如果不要里面的“{”和“-”,自己替换成空即可。