我有以下代码:
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 :(得分: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