excel - VBA 生成 -35 到 +5 之间的随机数

标签 excel vba

我正在尝试在 VBA 中编写一行代码,允许我在 -35 之间生成随机数和 5 .但是,我使用了以下公式,它给了我 -5 之间的随机数和 +5

Int((Rnd() * ((-1) ^ Int(Rnd() * 10))) * 5)

最佳答案

Fix(Rnd() * 41) - 35

会做的。这将是均匀分布的,只要 Rnd()是。 Fix擦洗数字的小数部分。您想要 -35 和 5 之间的每个数字(包括 41 个数字)。 rnd()本身从不绘制 1。

用类似的东西测试生成器
Sub test()

    Dim j As Long
    While True
        j = Fix(Rnd() * 41) - 35

        VBA.DoEvents 'so you can break the program once you're done

        If j < -35 Or j > 5 Then
            Stop 'oops
        End If
        If j = -35 Then
            Debug.Print "Yup, I draw on the boundary"
        End If
        If j = 5 Then
            Debug.Print "Yup, I draw on the boundary"
        End If
    Wend

End Sub

关于excel - VBA 生成 -35 到 +5 之间的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45797082/

相关文章:

Excel VBA CustomSort从范围

Excel VLOOKUP,其中键不在第一列

html - 导航到 VBA 中的页面后无法重置 HTML 文档

excel - 如何使用范围和字符串比较来减少代码的运行时间

excel - 两个数组相乘 - 区域小数分隔符问题

vba - 如何使用 VBA 切换 Interior.Color

arrays - 对数组的特定列进行计算

java - 如何将 JXLS 从版本 1 迁移到版本 2

excel - VBA excel键检测

vba - 比较 B 列和 C 列,然后移动数据