我正在使用 Word 2013 生成一些对象,并在新一代之前删除它们。但有时 Word 在这种情况下会崩溃,所有的 VBA 代码都会被丢弃。以下是添加生成对象的代码:
For i = 1 To nodes
Set arrShapes(j) = docNew.Shapes.AddShape(MsoAutoShapeType.msoShapeDiamond, arrRawPoints(i, 1) - 2, arrRawPoints(i, 2) - 2, 4, 4)
arrShapes(j).title = "A" + Str(j) + "d"
arrShapes(j).Fill.ForeColor.RGB = RGB(255, 0, 0)
j = j + 1
Next i
删除代码如下:
For Each sp In arrShapes
If Not (sp Is Nothing or IsEmpty(sp)) Then
tl = Left(sp.title, 1)
If tl = "A" Then
tl = Mid(sp.title, 2, Len(sp.title) - 2)
nr = Int(tl)
sp.Delete
Set arrShapes(nr) = Nothing
End If
End If
Next sp
有时会发生崩溃,但如果我调用此例程 50 次或更多次,它会完美运行。碰巧用户手动删除了这样一个生成的对象,然后我就崩溃了。为了找到原因,我在 For Each 循环的第一行设置了一个断点,但是 Word 每次都会崩溃。这个概念有什么问题?