如何初始化具有静态非零长度的空数组?

时间:2016-11-15 02:38:12

标签: vba

我有以下代码:

Dim headerTextboxes(2) As Shape
Dim currSlide As Slide

Set currSlide = Application.ActiveWindow.View.Slide
' Pseudocode
' Set currSlide = [null, null, null]

For i = 0 to 2
  headerTextboxes(i) = currSlide.Shapes.AddTextbox(...)
Next i

我收到错误Object variable or With block variable not set。经过一些研究,我相信这是因为实际上还没有为headerTextboxes分配数组。

评论中的伪代码是我想要做的。它的正确实施是什么?我在网上找到的只是初始化零长度数组或带有现有元素的静态长度数组。

1 个答案:

答案 0 :(得分:0)

在设置对象的引用时,您需要使用Set关键字。由于headerTextboxes是一个Shape对象数组,因此每个元素都必须使用Set来指定对Shape的引用。

Dim headerTextboxes(2) As Shape
Dim currSlide As Slide

Set currSlide = Application.ActiveWindow.View.Slide
' Pseudocode
' Set currSlide = [null, null, null]

For i = 0 To 2
    Set headerTextboxes(i) = currSlide.Shapes.AddTextbox(...)
Next i