【Post-process】【VBA】ETABS VBA to get TableName list

【Post-process】【VBA】ETABS VBA to get TableName list_第1张图片

ETABS API探索:一键获取所有可用表格列表

作为结构工程师,你是否曾经困惑于ETABS中到底有哪些数据表格可以导出?Show Tables菜单中一个个查看既费时又不全面。今天我们来学习一个强大的API功能:一键获取ETABS中所有可用表格的完整清单

为什么需要这个功能?

在ETABS的Display菜单中,有数百个可用的表格,包括:

  • 模型定义表格:构件分配、材料属性、荷载定义
  • 分析结果表格:节点位移、构件内力、反力等
  • ⚙️ 设计数据表格:配筋结果、验算比率等

问题是:你很难记住所有表格的确切名称,而API调用需要精确的TableKey。这个脚本就像是一个"表格目录",帮你快速找到需要的数据表格。

完整代码实现

Sub Get_Available_Tables()
    '获取ETABS中所有可用的表格列表
    
    Dim myETABSObject As ETABSv1.cOAPI
    Dim mySapModel As ETABSv1.cSapModel
    Dim ret As Long
    
    On Error GoTo ErrHandler
    
    '连接到ETABS
    Set myETABSObject = GetObject(, "CSI.ETABS.API.ETABSObject")
    Set mySapModel = myETABSObject.SapModel
    
    '获取所有可用表格
    Dim NumberTables As Long
    Dim tableKey() As String
    Dim TableName() As String
    Dim ImportType() As Long
    Dim IsEmpty() As Boolean
    
    ret = mySapModel.DatabaseTables.GetAllTables(NumberTables, tableKey, TableName, ImportType, IsEmpty)
    
    '清空工作表并设置标题
    With Worksheets(1)
        .Cells.Clear
        .Cells(1, 1).Value = "ETABS可用表格列表"
        .Cells(1, 1).Font.Bold = True
        .Cells(1, 1).Font.Size = 14
        
        '设置表头
        .Cells(3, 1).Value = "序号"
        .Cells(3, 2).Value = "表格键值(TableKey)"
        .Cells(3, 3).Value = "表格名称(TableName)"
        .Cells(3, 4).Value = "导入类型"
        .Cells(3, 5).Value = "是否为空"
        .Range("A3:E3").Font.Bold = True
        .Range("A3:E3").Interior.Color = RGB(200, 200, 200)
    End With
    
    '导出表格信息
    Dim i As Long
    For i = 0 To NumberTables - 1
        Dim importTypeDesc As String
        Select Case ImportType(i)
   

你可能感兴趣的:(【Post-process】【VBA】ETABS VBA to get TableName list)