用于在列单元格中连续生成唯一编号的 vba 代码

用于在列单元格中连续生成唯一编号的 vba 代码

我在 Excel 表中创建了一个按钮。现在我希望每次单击该按钮时都会在单元格中生成一个唯一代码。如果我再次单击该按钮,则会在前一个单元格下方生成另一个唯一代码。

我尝试了DEC2HEXexcelRANDBETWEEN的功能。它起作用了。但无法找到如何使用该按钮使其发挥作用。

希望理解!

答案1

打开 VBA 编辑器,然后输入以下按钮代码

Sub Generate()

    Dim lRow As Long
    
    'Find the last non-blank cell in column A
    lRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    ActiveSheet.Range("G" & (lRow + 1)).Value = WorksheetFunction.RandBetween(1, 5000)
    'Select the last row of the column - Change the column
    ActiveSheet.Cells((lRow + 1), 1).Select

End Sub

请注意,由于您使用的是 RANDBETWEEN 函数,Excel 将重新计算工作表并将先前生成的随机数更改为新的随机数,如下所示这里

与 RAND 一样,Excel 的 RANDBETWEEN 是一个易失性函数,每次电子表格重新计算时它都会返回一个新的随机整数。

答案2

您可以使用以下宏来创建一个随机数:

  Sub RandNumber()
        ActiveCell.FormulaR1C1 = "=RANDBETWEEN(0,100)"
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ActiveCell.Offset(1, 0).Select
    End Sub

要将其创建为宏,请按 ALT + F11,在左侧的导航器中找到您的工作簿,右键单击并插入新模块,然后粘贴到上面。

在此处了解有关录制宏的更多信息:

https://www.webucator.com/how-to/how-record-macro-microsoft-excel.cfm

如果您希望随机数介于特定数字之间而不仅仅是 0-100 之间,您可以编辑上面的代码,我会让您解决该部分;)

相关内容