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

如何使用VBA遍历已打开的CATDrawing文件?

用VBA遍历CATIA中所有已打开的CATDrawing文件

当然可以实现遍历所有已打开的CATDrawing文件,你当前的代码仅针对单个激活的文档操作,要实现批量遍历,需要循环CATIA的所有已打开文档集合,并筛选出CATDrawing类型的文件。

以下是完整的实现代码:

Dim catiaApp As Object
Dim doc As Document
Dim oSheet As Sheet
Dim i As Integer

Set catiaApp = GetObject(, "CATIA.Application") ' 获取已运行的CATIA实例

' 遍历所有已打开的文档
For Each doc In catiaApp.Documents
    ' 判断当前文档是否为CATDrawing类型
    If doc.Type = "Drawing" Then
        Debug.Print "=== 文档名称:" & doc.Name & " ==="
        Debug.Print "图纸页总数:" & doc.Sheets.Count
        
        ' 遍历当前CATDrawing的所有图纸页
        For i = 1 To doc.Sheets.Count
            Set oSheet = doc.Sheets.Item(i)
            ' 无需激活也可获取图纸页信息,若需操作可保留Activate
            ' oSheet.Activate
            Debug.Print "图纸页名称:" & oSheet.Name
        Next i
    End If
Next doc

代码说明:

  • 通过GetObject获取当前运行的CATIA实例,避免重复启动程序
  • 循环catiaApp.Documents集合,遍历所有已打开的文档
  • 用doc.Type = "Drawing"精准筛选出CATDrawing类型的文件
  • 对每个符合条件的图纸文档,复用你原有的逻辑遍历其所有图纸页,这里去掉了非必要的Activate操作,能提升运行效率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 21:22:32