Excel VBA在A列生成25个大于10小于98的一个随机数num1,获取该随机数的个位数m1,根据m1在C列生成25个小于A列相应行的随机数num2,num2的个位数要大于m1
时间: 2024-09-27 22:14:11 浏览: 42
在Excel VBA中,你可以使用`Rnd`函数配合条件判断来实现这样的功能。以下是一个简单的示例代码:
```vba
Sub GenerateRandomNumbers()
Dim ws As Worksheet
Dim rngA As Range
Dim rngC As Range
Dim i As Long
' 选择工作表和范围
Set ws = ThisWorkbook.ActiveSheet
Set rngA = ws.Range("A1:A25")
Set rngC = ws.Range("C1:C25")
' 生成25个10到97之间的随机数存放在A列
For i = 1 To 25
rngA.Cells(i, 1) = Int((98 - 10 + 1) * Rnd() + 10)
Next i
' 获取A列每个数字的个位数并存放在B列
Dim m1 As Long
rngA.Offset(0, 1).ClearContents ' 清空B列
For i = 1 To 25
m1 = Right(rngA.Cells(i, 1), 1)
rngA.Cells(i, 1).Offset(0, 1) = m1
Next i
' 根据m1在C列生成小于此行A列数字的随机数,同时保证个位数大于m1
For i = 1 To 25
Do
' 生成小于A列对应位置数字的随机数
rngC.Cells(i, 1) = Int(rngA.Cells(i, 1) * Rnd()) + 1
' 检查个位数是否大于m1,如果不是,则继续生成
Loop While (Right(rngC.Cells(i, 1), 1) <= m1)
Next i
End Sub
```
这段代码会在A列生成25个符合条件的随机数,在C列生成同样数量的随机数,满足C列的个位数大于A列相应行的个位数。
阅读全文