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

ETABS OAPI提取模态参与质量比表时Groups参数类型不匹配求助

问题排查与修复

错误原因

ETABS OAPI的GetTableForDisplayArray方法中,Groups参数要求传入一维字符串数组(String()),你当前声明的是Groups() As Variant,且未正确初始化动态数组就直接赋值,导致类型不匹配错误。

修复步骤

  1. 将Groups的变量类型改为String()而非Variant()
  2. 通过ReDim先初始化数组,再赋值"All"

修改后的完整代码

Public Sub GetModalParticipationTable()
    Dim Fields() As String
    Dim Data As Variant
    ' 修正:将Groups改为字符串数组
    Dim Groups() As String
    Dim ret As Long
    Dim i As Long

    ' Validar conexión
    If SapModel Is Nothing Then
        MsgBox "No hay conexión activa con ETABS.", vbCritical
        Exit Sub
    End If
    
    ' 修正:先初始化数组再赋值
    ReDim Groups(0 To 0)
    Groups(0) = "All"
    
    ' Extraer tabla
    ret = SapModel.DatabaseTables.GetTableForDisplayArray("Modal Participating Mass Ratios", Fields, Data, Groups)
    If ret <> 0 Then
        MsgBox "No se pudo extraer la tabla 'Modal Participating Mass Ratios'. Código: " & ret, vbExclamation
        Exit Sub
    End If

    ' Validar contenido
    If IsEmpty(Data) Then
        MsgBox "La tabla está vacía o no hay resultados disponibles.", vbInformation
        Exit Sub
    End If

    ' Volcar a tabla estructurada
    Dim tbl As ListObject
    Set tbl = shtETABSMODOS.ListObjects("tbl_ETABS_MODOS")
    Call VolcarArrayEnTabla(tbl, Data)
    
    MsgBox "Tabla de participación modal extraída exitosamente.", vbInformation
End Sub

额外注意事项

  • 确认ETABS版本的OAPI文档,部分版本中GetTableForDisplayArray的Groups参数需严格匹配组名称格式,"All"是通用有效值
  • 若仍报错,可对照ETABS OAPI文档的返回码表排查,确认是否为表名称拼写错误或模型未生成模态分析结果

内容的提问来源于stack exchange,提问作者Julián Felipe Herrera Mejía

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:34:56