![当另一个单元格发生变化时,如何让一个单元格强制完成?](https://linux22.com/image/1595324/%E5%BD%93%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%8D%95%E5%85%83%E6%A0%BC%E5%8F%91%E7%94%9F%E5%8F%98%E5%8C%96%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E8%AE%A9%E4%B8%80%E4%B8%AA%E5%8D%95%E5%85%83%E6%A0%BC%E5%BC%BA%E5%88%B6%E5%AE%8C%E6%88%90%EF%BC%9F.png)
如果单元格 L6 显示是或否,则会出现一个消息框来确认必须填写单元格 L7 和 L8。我看到了类似的帖子,但我无法让 VBA 编码适用于我的情况。任何帮助都将不胜感激,谢谢。
答案1
为了实现该目标,我想建议两种可能的方法。
方法一、数据验证:
- 情况 1,当 Cell
L6
中填充有Yes
或时No
。
- 情况 2,当 Cell
L6
既不被 填充,Yes
也不被填充时No
。
- 情况 3,当 Cell
L6
为时Blank
。
怎么运行的:
- 选择单元格
L7
&L8
并从数据选项卡点击数据验证。 - 放风俗作为验证标准并输入此公式。
=NOT(ISBLANK($L$6))*(OR($L$6="Yes",$L$6="No"))
- 完成好的
方法 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 代码中的单元格引用。