vba - 如何在新单元格中生成随机数

标签 vba excel

所以我想生成1-13之间的随机数。我有一个随机数生成单元格 A1,但我想偏移一行以将随机数放入单元格 A2 等中。

这是我迄今为止的工作:

Sub randomnumb()
    Dim random_number As Integer
    Randomize
    random_number = Int(13 * Rnd) + 1  
    Cells(1, 1) = random_number
End Sub

在能够做到这一点之后。我希望随机数在 10 次后停止生成。我认为“Do Until”方法会起作用,但不确定如何执行。

所以在玩过它之后,我想出了如何让下一个单元格生成一个随机数。我现在想让 B 列和 C 列从单元格 B2 和 C2 开始生成随机数。这是我迄今为止的工作:

Sub randomnumb()

    Dim IntCardOne As Integer

    Randomize

    IntCardOne = Int(13 * Rnd) + 1
    ActiveCell.Value = IntCardOne
    ActiveCell.Offset(1, 0).Select
End Sub

好的。因此,到目前为止,在帮助下我已经做到了这一点。

Sub test()

    Dim IntHand1 As Integer
    Dim IntHand2 As Integer

    Randomize
     For IntHand1 = 1 To 10
        Cells(IntHand1, 2) = Int(13 * Rnd) + 1
    Next



    Randomize
    For IntHand2 = 1 To 10
        Cells(IntHand2, 3) = Int(13 * Rnd) + 1
    Next IntHand2


End Sub

最终目标是尝试从卡牌游戏制作一款名为 war 的游戏。 当然它们生成得很快。是否有一个stop function函数或方法可以让程序在最后停止运行代码?我还想将所有内容偏移一行,这样我就可以为每一列添加标题。然后我想尝试放置一个记录分数的 If then 语句。

然后希望在十轮之后我可以打印一个消息框来说明获胜者。

好的,我完成了我想做的程序。我可能已经说过我之前想做的事情,但无论如何我都会重复一遍。我正在尝试制作一款名为“ war ”的纸牌游戏。电子表格必须打印数字,当用户得分达到 10 分时,他就获胜,电子表格将停止打印数字。我想说谢谢你的帮助。您提供给我的随机数生成器是作业的良好开端。教授给了我 19/20。

最佳答案

当您知道开始循环之前需要多少个循环时使用 For 循环通常是最简单的。

Sub RandomNumber()
    Dim i as Integer
    For i = 1 to 10
        Cells(i,1) = WorksheetFunction.Randbetween(1,13)
    Next i
End Sub

如果你真的想使用RndRandomize,你可以这样做

Sub RandomNumber()
    Dim i as Integer
    Randomize
    For i = 1 to 10
        Cells(i,1) = Int(13 * Rnd) + 1
    Next i
End Sub

更新

一次一个数字

Sub RandomNumber2()
    Dim lastCell As Range

    'do a ctrl+up from the bottom of column A
    With ThisWorkbook.Worksheets("Sheet1")
        Set lastCell = .Cells(.Rows.Count, 1).End(xlUp)
    End With

    'move one row down (except for when you have nothing in column A)
    If lastCell.Value <> vbNullString Then
        Set lastCell = lastCell.Offset(1, 0)
    End If

    'place random number in this cell
    lastCell.Value = Application.WorksheetFunction.RandBetween(1, 13)
End Sub

关于vba - 如何在新单元格中生成随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42449232/

相关文章:

python - 如何将给定的序数(从 Excel)转换为日期

python - 在 openpyxl 中保留原始单元格格式

vba:使用数组中的文本从 selection.find 返回页码

ms-access - 使用 DLookup (With Multiple Criteria) 检查记录是否存在

excel - vba打开csv文件困惑的日期格式

excel - 以秒为单位的日期和时间值之间的差异 (Excel)

vba - Excel:按钮操作代码 - 为什么我不能使用工作簿和工作表模块

excel vba range.find找不到日期

excel - 使用 GrantAccessToMultipleFiles 阻止 Sub 在 Windows 上运行

Excel 2010 VBA 保存、打开位置、选择文件