我想检查当前单元格的值,如果它为null,则生成一个随机数,否则保持原样。
=IF(P4<>0,RANDBETWEEN(1,100),P4)
但是当我打开工作表时,我得到了循环引用的问题,并且P4的值正在改变,即使旧值不为空
将此代码放在工作表的私有代码表中(右键单击工作表选项卡,查看代码)。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If not intersect(Target, Range("P4")) Is Nothing Then
On Error GoTo safe_exit
Application.EnableEvents = False
If Range("P4") = vbNullString Then
Range("P4") = Application.RandBetween(1, 100)
End If
End If
safe_exit:
Application.EnableEvents = True
End Sub