【发布时间】:2018-05-31 00:04:07
【问题描述】:
我正在尝试使用循环将一维数组拆分为二维数组并填充 VBA 中的文本框。我在以下行中收到错误,下标超出 Table(j, i - 4) 的范围: 表(j, i - 4) = inputArray(10 * (i - 4 - 1) + (j - 1)) 请让我知道是否有更好的方法来做到这一点,任何帮助表示赞赏
部分代码如下
For i = 5 to 9
Dim inputArray As Variant
Dim Table As Variant
inputArray = Array(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9)
For j = 1 To UBound(inputArray)
Table = Array(j, i - 4)
Table(j, i - 4) = inputArray(10 * (i - 4 - 1) + (j - 1))
Next j
Set oPicture = oSl.Shapes.AddTextbox(msoTextOrientationHorizontal, _
Left:=TBLeft1, Top:=TBTop1, _
Width:=TBWidth1, Height:=TBHeight1)
oPicture.TextFrame.TextRange.Text = Table(1, (i - 4))
With oPicture
.ZOrder msoBringInFrontOfText
End With
Set oPicture = oSl.Shapes.AddTextbox(msoTextOrientationHorizontal, _
Left:=TBLeft2, Top:=TBTop2, _
Width:=TBWidth2, Height:=TBHeight2)
oPicture.TextFrame.TextRange.Text = Table(2, (i - 4))
With oPicture
.ZOrder msoBringInFrontOfText
End With
Next i
【问题讨论】:
-
您希望
Table = Array(j, i - 4)做什么?我推测您想定义一个维度为 j 和 i-4 的二维数组,但您正在创建一个具有两个值 j 和 i-4 的数组。我想你想使用ReDim。 -
是的,我想定义一个维度为 j 和 i-4 的二维数组。我将如何使用 ReDim 来做到这一点? ReDim 表 (j, i-4) ?
-
将表定义更改为
Dim Table() as Variant使其成为动态数组,然后根据需要使用Redim Table(j, i-4)调整其大小。
标签: vba powerpoint