在许多单元格上生成随机字符VBA



我在vba

中创建了此脚本
Sub code_piece_motoculture()
    Randomize
    caractere = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    lettre_nombre = ""
    For i = 1 To 15
        nombre_alea = Int(Len(caractere) * Rnd) + 1
        lettre_nombre = lettre_nombre & Mid(caractere, nombre_alea, 1)
        If i = 5 Then lettre_nombre = lettre_nombre & "-"
        If i = 10 Then lettre_nombre = lettre_nombre & "-"
    Next
    Range("A1") = lettre_nombre
End Sub

我只有这个结果A1

ATBBM-YSHSS-G5ZVH

,但我希望在单元格A2-> a3-> a4-> a5 ect上进行不同的结果你能帮我吗?

我确定有更清洁的东西,但这将实现您正在寻找的

Sub code_piece_motoculture()
    Randomize
    caractere = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    lettre_nombre = ""
    For j = 1 To 10 'entrer le nombre de lignes desiree
    For i = 1 To 15
        nombre_alea = Int(Len(caractere) * Rnd) + 1
        lettre_nombre = lettre_nombre & Mid(caractere, nombre_alea, 1)
        If i = 5 Then lettre_nombre = lettre_nombre & "-"
        If i = 10 Then lettre_nombre = lettre_nombre & "-"
    Next
    Range("A" & j) = lettre_nombre
    lettre_nombre = ""
    Next
End Sub

尝试此功能...

Public Function GenerateRandomStuff() As String
    Dim i As Long, lngNumber As Long, lngBetween As Long
    For i = 1 To 15
        lngBetween = WorksheetFunction.RandBetween(1, 2)
        If lngBetween = 1 Then
            lngNumber = WorksheetFunction.RandBetween(48, 57)
        Else
            lngNumber = WorksheetFunction.RandBetween(65, 90)
        End If
        GenerateRandomStuff = GenerateRandomStuff & Chr(lngNumber)
        If i = 5 Then GenerateRandomStuff = GenerateRandomStuff & "-"
        If i = 10 Then GenerateRandomStuff = GenerateRandomStuff & "-"
    Next
End Function

...为我工作很好。

您可以将其添加到单元格中,如果要将其添加到更多单元格中,则无需扩展宏,只需复制并粘贴公式...

=GenerateRandomStuff()

...如果您想阻止每次刷新,请复制和粘贴特殊值,然后完成。

最新更新