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

如何在CATIA V5宏循环中跳过出错迭代并使用上一有效文件保存

解决方案

核心逻辑是新增变量记录最近一次导出成功的有效CATPart文件路径,每次迭代先捕获参数更新、导出环节的错误,一旦触发错误直接将上一次的有效文件复制到本次的目标路径即可。

调整后代码示例

Dim lastValidFile As String
' 可选:如果第一次迭代就报错需要默认基准文件,可以在这里先给lastValidFile赋初始路径
On Error Resume Next
For i = 1 To 10
    Err.Clear ' 每次迭代前清空上一次的错误状态
    strParam2.Value = Val(i) * 1
    part1.Update
    
    folderpath3 = folderpath2 & "\" & "file" & i
    MkDir folderpath3
    name = folderpath3 & "\" & "file" & i & ".CATPart" ' 主动补后缀避免版本兼容异常
    
    partDocument1.ExportData name, "CATPart"
    
    If Err.Number = 0 Then
        ' 本次迭代无错误,更新最后有效文件路径
        lastValidFile = name
    Else
        ' 触发错误,直接复制上一次有效文件到本次路径
        If lastValidFile <> "" Then
            FileCopy lastValidFile, name
        Else
            ' 首次迭代就报错的兜底处理,可按需修改
            MsgBox "第" & i & "次迭代报错,无可用的历史有效文件"
        End If
        Err.Clear ' 清空错误状态,不影响下一次迭代
    End If
Next
' 循环结束后关闭错误捕获
On Error GoTo 0

注意事项

  • 原有代码的错误捕获位置在part1.Update之后,会漏掉参数更新环节的报错,调整后错误捕获覆盖所有可能触发异常的环节
  • 调用FileCopy需要确保上一次的有效文件没有被移动或删除,磁盘空间充足的前提下建议保留所有历史有效文件
  • 如果需要对报错的迭代做追溯,可在错误分支新增文本日志写入逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:24:03