2016-11-15 124 views
0

我有下面的代码:如何初始化静态非零长度的空数组?

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

评论中的伪码是我想要做的。它的正确实施是什么?我可以在网上找到的所有东西都是用现有元素初始化一个零长度数组或一个静态长度数组。

回答

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