You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA 实现任务录入时对应工时非空校验功能开发求助

解决方案

你现有的代码已经内置了列校验的核心逻辑,仅需做少量修改即可实现需求:

步骤1:替换compareCols校验函数

将你当前的compareCols函数替换为以下版本,新增错误捕获处理、空格过滤,同时将提示修改为你需要的中文内容:

Function compareCols(rng As Range) As String
    Dim rngC1 As Range, cel As Range
    ' 错误捕获:避免任务列为空时SpecialCells抛出运行时错误
    On Error Resume Next
    Set rngC1 = rng.Columns(1).SpecialCells(xlCellTypeConstants)
    On Error GoTo 0
    
    If rngC1 Is Nothing Then
        compareCols = "OK"
        Exit Function
    End If
    
    For Each cel In rngC1.Cells
        ' 核心校验逻辑:任务列有值、工时列为空(自动过滤空格)
        If cel.Value <> "" And Trim(cel.Offset(0, 1).Value) = "" Then
            ' 如不需要展示具体出错位置,直接设置为 compareCols = "存在未分配工时的任务" 即可
            compareCols = "存在未分配工时的任务,出错位置:" & cel.Offset(0, 1).Address(False, False)
            Exit Function
        End If
    Next cel
    compareCols = "OK"
End Function

步骤2:确认校验执行顺序

你现有CAD_Task_Entry过程已经将校验逻辑放在了数据写入任务跟踪表之前,执行顺序完全正确,无需额外调整。

内容的提问来源于stack exchange,提问作者WaveWalker116

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:48:01