EXCEL:循环参考问题

问题描述 投票:0回答:1

我想检查当前单元格的值,如果它为null,则生成一个随机数,否则保持原样。

=IF(P4<>0,RANDBETWEEN(1,100),P4)

但是当我打开工作表时,我得到了循环引用的问题,并且P4的值正在改变,即使旧值不为空

excel
1个回答
3
投票

将此代码放在工作表的私有代码表中(右键单击工作表选项卡,查看代码)。

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
© www.soinside.com 2019 - 2024. All rights reserved.