我要用A-Z的字母建立10个字符宽的串,最好用两三个循环完成,我想了半天没想起来,其实应该不难,
可别跟我说要用十个循环。
比如说:
AA
AB
AAAAB
ADEFGUK这样的。
在线等待。五点前结分。

解决方案 »

  1.   

    Private Sub Command1_Click()
    MsgBox Test
    End Sub
    Public Function Test() As String
      Const Tables As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
      Randomize
      Dim I As Long
      Dim tmp As String
      For I = 1 To 10
          tmp = tmp & CStr(Mid(Tables, Int(Rnd * 25) + 1, 1))
      Next
      Test = tmp
    End Function
      

  2.   

    Private Sub Command1_Click()
    MsgBox Test
    End SubPublic Function Test() As String
      Randomize
      Dim I As Long
      Dim tmp As String
      For I = 1 To 10
          tmp = tmp & Chr(Int(Rnd * 25) + 65)
      Next
      Test = tmp
    End Function
      

  3.   

    同意Cooly(☆给我一个开心的理由!☆
      

  4.   

    rnd产生的随机数不是数字吗,我要的是字母啊。
      

  5.   

    Cooly(☆给我一个开心的理由!☆) 同意!
      

  6.   

    Cooly(☆给我一个开心的理由!☆) 你的方法不错,但这样就必须是十个宽度了,能不能有少于十个的,就是十个以内的也要。
      

  7.   

    把循环的长度改一下不就行了么。另外,Rnd * 25 不对吧。Int(Rnd * 25)只能产生 0 - 24的随机整数,这样就没有字母Z了。  For I = 0 To Int(Rnd * 10)
          tmp = tmp & Chr(Int(Rnd * 26) + 65)
      Next
      

  8.   

    Private Sub Command1_Click()
    MsgBox Test
    End SubPublic Function Test() As String
      Randomize
      Dim I,j As Long
      Dim tmp As String
      j=(rnd*10)
      For I = 1 To j
          tmp = tmp & Chr(Int(Rnd * 25) + 65)
      Next
      Test = tmp
    End Function
    这样就可以了
      

  9.   

    Private Sub Command1_Click()
    '参数是输出的字符串长度
    MsgBox Test(10)
    End SubPublic Function Test(ByVal Bits As Integer) As String
      Randomize
      Dim I As Long
      Dim tmp As String
      For I = 1 To Bits
          tmp = tmp & Chr(Int(Rnd * 25) + 65)
      Next
      Test = tmp
    End Function
      

  10.   

    这个问题真奇怪。print "FJDKLAJF"
    print "FHDKHF"
    print "fdafdaf"
    print "aaffffrer"
    print "ruewfjke"
    ...哈哈。
      

  11.   

    '回复人: Cooly(☆给我一个开心的理由!☆)
    '修改
    Private Sub Command1_Click()
        MsgBox Test
    End SubPublic Function Test() As String
    Dim I As Long
    Dim tmp As String
        Randomize Timer
        For I = 1 To Int(Rnd * 10) + 1
            tmp = tmp & Chr(Int(Rnd * 25) + 65)
        Next
        Test = tmp
    End Function
      

  12.   

    这个问题真奇怪。print "FJDKLAJF"
    print "FHDKHF"
    print "fdafdaf"
    print "aaffffrer"
    print "ruewfjke"
    ...哈哈。
      

  13.   

    TO eports(飘零风) :
      你说得对,我的失误,不好意思。:)TO All:修订Private Sub Command1_Click()
    '参数是输出的字符串长度
    MsgBox Test(10)
    End SubPublic Function Test(ByVal Bits As Integer) As String
      Randomize
      Dim I As Long
      Dim tmp As String
      For I = 1 To Bits
          tmp = tmp & Chr(Int(Rnd * 26) + 65)
      Next
      Test = tmp
    End Function
      

  14.   

    回复人: eports(飘零风) 说的很好
    好久没动vb了:('回复人: Cooly(☆给我一个开心的理由!☆)
    '再修改
    Private Sub Command1_Click()
        MsgBox Test
    End SubPublic Function Test() As String
    Dim I As Long
    Dim tmp As String
        Randomize Timer
        For I = 0 To Int(Rnd * 10)
            tmp = tmp & Chr(Int(Rnd * 26) + 65)
        Next
        Test = tmp
    End Function
      

  15.   

    呵呵:)
    这位llse1 (),我想问一下,以前没有编过程?够懒!佩服!既然知道能rnd产生随机数,为什么自己不产生一个呢?
      

  16.   

    呵呵,简单
    Private Sub Command1_Click()
    Dim I As Long
    Dim tmp As String
      For I = 1 To 10
          tmp = tmp & Chr(Int(26 * Rnd + 65))
      Next
    End Sub
    msgbox tmp
    End Sub
      

  17.   

    我照着做的,在我的机器上怎么总提示CHR那,找不到工程或库,用MID也是的。这是怎么回事。
      

  18.   

    TO llse1() :
    可能是你的工程库有问题。试试下面的代码Private Sub Command1_Click()
    '参数是输出的字符串长度
    MsgBox Test(10)
    End SubPublic Function Test(ByVal Bits As Integer) As String
      VBA.Randomize
      Dim I As Long
      Dim tmp As String
      For I = 1 To Bits
          tmp = tmp & VBA.Chr(VBA.Int(VBA.Rnd * 26) + 65)
      Next
      Test = tmp
    End Function
      

  19.   

    要引用VBA库。
    楼主不觉得我的方法是最简单的吗?哈哈。
      

  20.   

    >rnd产生的随机数不是数字吗,我要的是字母啊'模块名称:mdlRandom
    '模块功能:产生随机的字符串
    '作者:[email protected]
    '更新日期:2003-7-25 3:55:42 PM
    '相关模块:mdlUtilities,
    '相关文件:
    '预期读者和阅读建议:
    '国外一共享软件,功能是产生一些随机数。据然能够卖到美元
    '我承认我会写代码,但是不会赚美元。
    '用这个模块你搞一个
    ' Password Generator Professional
    ' Random String Cenerator  Professional
    '赚到钱记得分我一点。 1%就OK。
    '使用方法:
    'strMatrix ="abcdefghijkl" '不要重复,这是你的串中能够包含的字符
    'lngLen  = 10 '你要随机选几个字符
    'dim strOut      '保存结果
    'dim blnAllowRepeat    '是否允许重复
    'blnAllowRepeat=True
    ' CreateRandomString strMatrix,lngLen , strOut,blnAllowRepeat
    '********************************************
    Public Function CreateRandomString( _
    ByVal strMatrix As String, _
    ByVal lngLen As Long, _
    strOut As String, _
    Optional BlnAllowRepeat As Boolean = False)
    '目的 :在给定的串中,随机选择一个字符,组成指定长度的串。
    '相关模块: RandomNumber,CreateRandomByteArray
    '输入:
    '返回:如果操作成功完成,返回0,否则返回Err.Number
    On Error GoTo PROC_ERR
    Dim lngErr As Long
    '[参数有效性检测]
    Dim lngLenMatrix As Long
    lngLenMatrix = Len(strMatrix)
    If lngLenMatrix = 0 Or lngLen < 1 Then
       lngErr = -1
       Debug.Print "CreateRandomString. Matrix is Empty or lngLen <1"
       GoTo PROC_EXIT
    End If
    '***************
    Dim strTemp As String
    Dim strOneRandom As String
    Dim lngLoop As Long
    Dim lngRandomPosition As Long
    Dim abytRandom() As Byte
    '***************
    If BlnAllowRepeat Then
        '***************
        '*允许重复
       For lngLoop = 1 To lngLen
        '*关键外部调用:mdlUtilities.RandomNumber
          '随机选择一个位置
          lngRandomPosition = RandomNumber(1, lngLenMatrix)
          '得到随机位置的字符
          strOneRandom = Mid(strMatrix, lngRandomPosition, 1)
          '连接得到的随的字符
          strTemp = strTemp & strOneRandom
       Next
       
    Else
        '***************
        '*不允许重复
        '*关键外部调用:CreateRandomByteArray
        CreateRandomByteArray abytRandom, lngLenMatrix - 1
        Dim lngCount As Long
        '***************
        For lngLoop = 0 To lngLenMatrix - 1
           '*关键外部调用:mdlUtilities.RandomNumber
           '得到一个位置
            lngRandomPosition = abytRandom(lngLoop)
            '得到这个位置的字符
            strOneRandom = Mid(strMatrix, lngRandomPosition + 1, 1)
            '连接得到的字符
            strTemp = strTemp & strOneRandom
             '记数器加1
             lngCount = lngCount + 1
             If lngCount >= lngLen Then
             Exit For
             End If
             
       Next
       
    End If
    '***************
    '***************
    '*返回结果
    strOut = strTempPROC_EXIT:
    CreateRandomString = lngErrExit Function
    PROC_ERR:
    lngErr = Err.Number
    strOut = ""
    Debug.Print "CreateRandomString.Err(" & Err.Number & "):" & Err.Description & " Erl:" & Erl
    GoTo PROC_EXITEnd Function'***********************************************************
    Public Function CreateRandomByteArray(abytArray, Optional lngSize As Long = 255) As Long
    '目的 :产生一个随机的Byte数组
    '相关模块:
    '输入:abytArray -保存结果
    ' lngSize -这个数组的上界(*注意:下界为0)
    '返回:如果操作成功完成,返回0,否则返回Err.Number
    On Error GoTo PROC_ERR
         Dim lngErr As Long
        '建立一个临时Byte数组
        Dim lngLoop As Long
        Dim abytTemp() As Byte
        ReDim abytTemp(lngSize)
        '***************
        '*填充这个数组
        For lngLoop = 1 To lngSize
        abytTemp(lngLoop) = lngLoop
        Next
        '***************
        '*对已经填充的数组,通过随机的交换两个元素的位置来打乱
        Dim lngRandom
        Dim vntTemp
        For lngLoop = 0 To lngSize
          lngRandom = RandomNumber(0, lngSize)
        '  Debug.Print "Random:" & lngRandom
           vntTemp = abytTemp(lngLoop)
           abytTemp(lngLoop) = abytTemp(lngRandom)
           abytTemp(lngRandom) = vntTemp
               
        Next
        '***************
        '*返回结果
        abytArray = abytTemp
    PROC_EXIT:
       CreateRandomByteArray = lngErr
       Exit Function
    PROC_ERR:
    lngErr = Err.Number
    Debug.Print "CreateRandomByteArray.Err(" & Err.Number & "):" & Err.Description
    GoTo PROC_EXITEnd Function
    '***********************************************************
    Public Function RandomNumber(LowerBound, UpperBound)
    'Purpose :产生一个指定范围内的随机数
    On Error Resume Next
    Randomize
    RandomNumber = Int((UpperBound - LowerBound + 1) * Rnd + LowerBound)
    End Function
    '***********************************************************
    '***********************************************************
    '*希望能够对你有所帮助!
    '***********************************************************
    '********************************************
    '对不起,放一点广告,对您带来的不便敬请原谅!
    广告:我的第一个Visual Basic 6.0作品,欢迎大家试用,注册用户得到全部源代码。一、EasyDialog能够做什么?
    (为了增强Windows通用打开/保存对话框,能够快速的打开经常访问的文件夹或者文件)
    一、快速地在通用打开/保存对话框中打开你经常访问的文件夹/文件。
    二、快速地在Windows Explorer中打开经常访问的文件夹/文件。
    三、快速地在IE浏览器打开你经常访问的网站。
    四、快速地给你的朋友发Email
    五、能够使您方便地按照逻辑分类来组织和管理您的文件夹/文件,您经常访问的网址,您的Email地址。'********************************************
    '*下载EasyDialog:
    http://www.softboyzhou.com/download/EasyDialog.asp
    '***************
    '*购买EasyDialog:
    http://www.softreg.com.cn/shareware_view.asp?id=/7148D197-1C1D-4E84-B92A-EE2CC07D27C0/
    '***************
    '*给我写信:有什么问题请来信。
    [email protected]