你可以使用以下代码来实现你的需求:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    Dim cell As Range
    
    ' 设置需要限制输入的范围为A列和E列,从第二行开始到无限行
    Set rng = Union(Range("A2:A" & Rows.Count), Range("E2:E" & Rows.Count))
    
    ' 检查被修改的单元格是否在限制范围内
    If Not Intersect(Target, rng) Is Nothing Then
        For Each cell In Intersect(Target, rng)
            ' 检查输入是否为日期或者为"无"
            If Not IsDate(cell.Value) And cell.Value <> "无" Then
                ' 如果输入不符合要求,则清空该单元格的内容
                cell.ClearContents
            End If
        Next cell
    End If
End Sub

将上述代码复制到Excel文件所在的VB编辑器中的该工作表对象模块(如Sheet1)的代码窗口中。然后,当你在A列和E列中输入不是日期或者不是"无"的内容时,该单元格的内容将被清空。

注意:为了使代码能够正常工作,请确保在Excel中启用了宏


原文地址: https://www.cveoy.top/t/topic/hO5y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录