生成随机代码 - 混合数字和字母表

时间:2018-02-14 08:46:13

标签: excel vba random userform

我想使用用户表单记录用户数据。

enter image description here

在第一个文本框中,我将插入用户名。
第二个文本框是他们的ID。

在第三个文本框中,我想点击生成'生成一个5个字符的ID /代码(混合数字和字母)。按钮(但我不知道编码是什么)。

点击“添加用户”后,我希望在Excel表格中填充数据。我想在列A中插入数字1,2,3 ...,今天的日期(当添加用户详细信息时)在列B中。在C列中的用户表格中添加的数据,D&即

以下是我希望数据的样子:

data example

以下是我从网站上复制的代码。

Private Sub CommandButton2_Click()

Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Database")

'find first empty row in database
iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1

'check for a Name number
If Trim(Me.TextBox1.Value) = "" Then
    Me.TextBox1.SetFocus
    MsgBox "Please complete the form"
    Exit Sub
End If

'copy the data to the database
ws.Cells(iRow, 1).Value = Me.TextBox1.Value
ws.Cells(iRow, 2).Value = Me.TextBox2.Value
ws.Cells(iRow, 3).Value = Me.TextBox3.Value

MsgBox "Data added", vbOKOnly + vbInformation, "Data Added"

'clear the data
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Me.TextBox1.SetFocus

End Sub

1 个答案:

答案 0 :(得分:0)

这将生成五个字符的随机字符串数字和字母。您可以指定按钮并输出到表单而不是消息框。

Sub x()

Dim vOut(1 To 5), i As Long, n As Long

Randomize

For i = 1 To 5
    n = WorksheetFunction.RandBetween(1, 2)
    If n = 1 Then
        vOut(i) = WorksheetFunction.RandBetween(0, 9)
    Else
        vOut(i) = Chr(64 + WorksheetFunction.RandBetween(1, 26))
    End If
Next i

MsgBox Join(vOut, "")

End Sub