excel中rand生成的数使随机数,每次打开表格都会自动重新生成,可通过将生成的随机数复制,粘贴为“值”让其生成的数不在变化。
方法步骤如下:
1、打开需要操作的EXCEL表格,选中有RAND函数生成的随机数无所在单元格。,并通过Ctrl+C复制。
2、点击鼠标右键,在粘贴选项中点击选择“值”即可。
3、返回Excel表格,通过F9或重新打开表格发现由RAND函数生成的随机数不再变化。
这得用VBA,
如果用公式随机取数的话,达不到你要的效果,只要任意单元格发生数据变更,公式取的数都会发生变化。
按上图中的箭头指示,打开VB编辑器,
在VB编辑器的左侧点击表名,
在VB编辑器的右侧粘贴代码,
然后关闭VB编辑器即可。
如果怕取到重复数的话,可以把RandBetween(1, 100)中的范围改的大一点。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target。Row > 1 And Target。Column = 6 Then
Range(“D” & Target。Row) = Evaluate(“RandBetween(1, 100)”)
End If
End Sub
这个用 VBA 解决较好, 示例参考(右击“Sheet1”工作表标签>>查看代码>>键入下列代码>>按 F5 执行即可):
Sub RND5X5()
Cells。Delete ‘ 删除原有数据
’ 预置初始的 1-25
Range(“G10:G34”)。Formula = “=row()-9”
Range(“G10:G34”)。Value = Range(“G10:G34”)。Value
Dim I%, J%, iRND%, iNum%
Randomize ‘ 对随机数生成器做初始化的动作。
For I = 1 To 5
For J = 1 To 5
iNum = Application。WorksheetFunction。CountA(Range(“G10:G34”))
iRND = Int(iNum * Rnd) ’ 生成 0 到 iNum-1 之间的随机数值。
Cells(I, J) = Range(“G10”)。Offset(iRND, 0)
Range(“G10”)。Offset(iRND, 0)。EntireRow。Delete
Next
Next
‘ 设置区域边框及颜色
Range(“A1:E5”)。Borders。LineStyle = xlDouble
Range(“A1:E5”)。Interior。ColorIndex = 6
’ 设置行高列宽
Cells。ColumnWidth = 3.57
Cells。RowHeight = 22.5
Range(“A1”)。Select
End Sub
- 上一篇:abac式的词语词语
- 下一篇:DNF擎天之柱怎么打