EXCEL:循环参考问题
我想检查当前单元格的值 如果为空,则生成一个随机数 否则就保持原样EXCEL:循环参考问题,excel,Excel,我想检查当前单元格的值 如果为空,则生成一个随机数 否则就保持原样 =IF(P4<>0,RANDBETWEEN(1,100),P4) =IF(第40页,第(1100)页,第4页) 但是,当我打开工作表时,我得到了一个循环引用问题,并且P4的值正在更改,即使旧值不是空的将此代码放入工作表的专用代码表中(右键单击工作表选项卡,查看代码) 将此代码放入工作表的专用代码表(右键单击工作表选项卡,查看代码) 如果包含公式的单元格引用自身,则将获得循环引用。Null也不同于0,尽管根据描述,
=IF(P4<>0,RANDBETWEEN(1,100),P4)
=IF(第40页,第(1100)页,第4页)
但是,当我打开工作表时,我得到了一个循环引用问题,并且P4的值正在更改,即使旧值不是空的将此代码放入工作表的专用代码表中(右键单击工作表选项卡,查看代码)
将此代码放入工作表的专用代码表(右键单击工作表选项卡,查看代码)
如果包含公式的单元格引用自身,则将获得循环引用。Null也不同于0,尽管根据描述,您的测试是for is Null(不是。我假设该位是您尝试测试Null的位置)。在这种情况下,Null将是“”。您可以使用VBA和选择更改事件来执行测试和更改。现在你有了一个例子!如果包含公式的单元格引用自身,则将获得循环引用。Null也不同于0,尽管根据描述,您的测试是for is Null(不是。我假设该位是您尝试测试Null的位置)。在这种情况下,Null将是“”。您可以使用VBA和选择更改事件来执行测试和更改。现在你有了一个例子!与变化事件。
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