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

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    Dim cell As Range
    
    ' 设置要检查的列范围
    Set rng = Intersect(Target, Range("A:E"))
    
    ' 如果更改的单元格在要检查的列范围内
    If Not rng Is Nothing Then
        Application.EnableEvents = False
        
        ' 循环遍历更改的单元格
        For Each cell In rng
            ' 检查单元格是否在第二行及以后
            If cell.Row >= 2 Then
                ' 检查单元格的值是否为日期或 "无"
                If Not IsDate(cell.Value) And cell.Value <> "无" Then
                    ' 清空单元格的值
                    cell.Value = ""
                End If
            End If
        Next cell
        
        Application.EnableEvents = True
    End If
End Sub

将上述代码复制到您的Excel文件中的VBA编辑器窗口中的Sheet模块中(例如Sheet1),然后保存文件。每当在A、C或E列中的任何单元格中进行更改时,它将检查单元格的值是否为日期或 "无",如果不是,则清空单元格的值

我想使用VB让Excel中的A和C和E列仅这三列从第二行开始到无限行只允许输入日期和无

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

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