当另一个单元格发生变化时,如何让一个单元格强制完成?

当另一个单元格发生变化时,如何让一个单元格强制完成?

如果单元格 L6 显示是或否,则会出现一个消息框来确认必须填写单元格 L7 和 L8。我看到了类似的帖子,但我无法让 VBA 编码适用于我的情况。任何帮助都将不胜感激,谢谢。

答案1

为了实现该目标,我想建议两种可能的方法。

方法一、数据验证:

  • 情况 1,当 CellL6中填充有Yes或时No

在此处输入图片描述


  • 情况 2,当 CellL6既不被 填充,Yes也不被填充时No

在此处输入图片描述


  • 情况 3,当 CellL6为时Blank

在此处输入图片描述


怎么运行的:

  1. 选择单元格L7&L8并从数据选项卡点击数据验证。
  2. 风俗作为验证标准并输入此公式。

=NOT(ISBLANK($L$6))*(OR($L$6="Yes",$L$6="No"))

  1. 完成好的

方法 2,VBA(宏):

  • 右键单击工作表标签& 打查看代码从弹出的菜单中获取 VB 编辑器。
  • 复制粘贴本守则标准模块使用 Sheet。

    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Not Intersect(Target, Range("L6")) Is Nothing Then
    
        If Target.Value = "Yes" Or Target.Value = "No" Then
            MsgBox "Now You Can fill L7 & L8"
        Range("L7").Activate
    
        ElseIf Target.Value <> "Yes" Or Target.Value <> "No" Then
            MsgBox "Target cell must have data Yes Or No,, to fill L7 & L8"
        Target.Activate
        End If
    
        If Target.Value = "" Then
        MsgBox "Target Cell Can't be Blank,,"
        Target.Activate
        End If
    End If
    
    End Sub
    

注意:

  • 一旦您填充单元格,此代码就会开始响应L6

  • 您可以根据需要调整公式以及 VBA 代码中的单元格引用。

相关内容