更新时间2019-05-09 05:56:59
A1为时间函数“NOW()”,B1为随机函数“=RAND()*(30-10)+10”。要求:A1改变时,B1随之改变。A1不变时,B1也不能变。
可以利用VBA实现:
记住需要改变的B1的所在工作表单名称,比如是"Sheet1"
菜单:-》工具-》宏-》Visual Basic编辑器
在弹出的VBA页面的左框双击"Sheet1"对象,如括号内的名称与括号前的不同,以括号内的为准;
在右框的左上小框点选"Worksheet",在其下的大框编辑好以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
a = Format(Target.Value, "yyyy.mm.dd hh:mm:ss")
If Target.Row = 1 And Target.Column = 1 And a <> Cells(1, 3) Then
Cells(1, 2) = Rnd() * (30 - 10) + 10
Cells(1, 3) = a
End If
End Sub
注意:
1 需要以该表单的C1单元格为辅助寄存,如需要另选别的单元格,如F2,请将代码中的两处Cells(1, 3)改为Cells(2, 6);
2 题述的A1变与不变的条件未够详尽,因为NOW()函数是精确到"秒"的,尽管显示出来的可能只是"年月日"或是"年月日时分"等,所以你要明确这个不变是精确到什么的?
而上述代码是精确到"秒"的,可以修改代码中的yyyy.mm.dd hh:mm:ss使其精度改变,
比如:修改为yyyy.mm.dd hh即为精确到小时的,即:只有A1改变到小时变化时,才触发B1的变更。
在平常的excel表格编辑中,有时候只需要用到某个随机数字(如1-10,1-100等),并不用填入某一确切数字。这时候就会用到随机函数,那么该如何使用呢?
RAND函数1如图所示,在单元格内输入【=RAND()】。2再敲击回车键,即可生成随机数。按F9可以刷新(笔记本可能不适应)。如图为两种不同随机结果。
RANDBETWEEN函数1如图所示,在单元格内输入【=RANDBETWEEN(m,n)】。注意此刻的m和n都是指特定的数值。2敲击回车键,即可随机生成m~n之间的任意整数。注意此函数是取整。如图为两种不同随机结果。
直接选择相应函数1在选中单元格之后,在页面右上角找到“自动求和”,点击右侧倒三角,出现如图所示界面,双击“其他函数”。2选择类别“数学与三角函数”,也可找到上述两种函数,双击选择即可。
函数介绍1RAND函数可以生成0~1之间的随机函数(包含小数位数)。如果觉得0~1之间这个数值小了,我们也让他放大使用公式【=RAND()*100】,加上*100也就扩大100倍。如果觉得小数位数太多,我们也可以进行指定的。比如:我只希望随机数保留一位小数位数【=ROUND(RAND(),1)】,保留两位那就是【=ROUND(RAND(),2)】,可以根据需要自行修改。2RANDBETWEEN函数可以随机生成指定范围的随机整数。设置好最低值与最高值即可实现随机取值。
不可能不变的
B1既然是随机函数,它就不可能不变。