【问题标题】:Output Array Contents without selecting each element输出数组内容而不选择每个元素
【发布时间】:2017-05-17 07:31:15
【问题描述】:

我有如下多维数组结构

Type Wedge
    C407                As Long
    C417                As Long
    C507                As Long
    C516                As Long
    C607                As Long
    C617                As Long
    C707                As Long
    C716                As Long
    C807                As Long
    C817                As Long
    C907                As Long
    C916                As Long
End Type

上面有大约 35 个元素

Global myWedge() As Wedge
ReDim myWedge(99, 4)

我已经填充了数组,但现在想将数组的内容输出到工作表。以前在其他较小的数组中,我将每个元素输出如下。

  'Output IOTT Number and Duration
        For a = 1 To 4
           If YGBL(x, a).IOTT > 0 Then sOutput.Cells(x + 4, IOTTCol) = YGBL(x, a).IOTT
               IOTTCol = IOTTCol + 2
           If YGBL(x, a).IOTTDUR > 0 Then sOutput.Cells(x + 4, IOTTDUR) = YGBL(x, a).IOTTDUR
               IOTTDUR = IOTTDUR + 2
        Next a

但是考虑到元素的数量,我只想遍历元素并将其放入工作表中,而不必为每个元素执行上述操作。

这可能吗

谢谢

【问题讨论】:

    标签: arrays vba output


    【解决方案1】:

    使用函数....

    Function PropertyOf(wedgeType As Wedge, index As Integer) As Long
      Dim w As Long
    
      With wedgeType
        Select Case index
          Case 1
             w = .C407
          Case 2
             w = .C417
          Case 3
             w = .C507
          ....
        End Select
      End With
      PropertyOf = w
    End Function
    

    然后

    Dim w As Wedge
    For a = 1 To 4
      w = myWedge(x, a)
      For c = 1 To 35
         p = PropertyOf(w, c)
         If p > 0 Then
            ' Do your stuff here
         End If
      Next c
    Next i
    

    【讨论】:

    • 嘿,感谢您的解决方案,只是在努力解决 w = myWedge(x,a) 什么是“X”
    • 我只是从您的示例 YGBL(x, a)....
    猜你喜欢
    • 2011-05-14
    • 2013-05-18
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    相关资源
    最近更新 更多