首页 > 解决方案 > 如何显示在 Excel VBA 中初始化的 3D 数组

问题描述

我正在学习 Excel VBA Programming for Dummies,第 3 版。有一个示例使用嵌套的 For-Next 循环来初始化一个值为 100 的三维数组。

我想看看这个子过程的结果。

Sub NestedLoops()
    Dim MyArray(10, 10, 10)
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    For i = 1 To 10
        For j = 1 To 10
            For k = 1 To 10
                MyArray(i, j, k) = 100
            Next k
        Next j
    Next i
End Sub

我尝试使用 MsgBox 显示 MyArray,但它显示类型不匹配。有没有办法显示数组?谢谢!

标签: excelvba

解决方案


好的,有几件事。

1) Excel 通常显示二维数据(行和列与图形上的高度和宽度或 X 和 Y 相同)。您有 3D 数据。

2)如果您坚持强制 Excel 显示数据,那么您需要使用工作表作为第三维。因此,您将为每个 I 创建一个工作表,并在该工作表上,用 j 和 k 填充每个单元格(其中 j 是一行,k 是一列)。如果你做对了,你最终应该得到 10 张纸,每张纸从 a1 到 j10 的每个单元格中都有 100 张。

看来您正在上课,我将留给您弄清楚如何将数据写入工作表。

弗莱彻


推荐阅读