我想在 PowerPoint 应用程序中制作一个 200 行的表格。
以下代码会引发此错误:运行时错误 424:需要对象
如何解决该错误?
Public Sub Macro1()
'Delete all slides
For i = ActivePresentation.Slides.Count To 1 Step -1
ActivePresentation.Slides(i).Delete
Next i
'Add a blank slide
ActivePresentation.Slides.Add Index:=1, Layout:=ppLayoutBlank
'Zoom out
ActiveWindow.View.Zoom = 40
'Add a Table
With ActivePresentation.Slides(1).Shapes.AddTable(NumRows:=1, NumColumns:=1, Left:=5, Top:=5, Width:=900, Height:=500)
.Name = "tbl"
End With
'Make 200 rows
While ActivePresentation.Slides(1).Shapes("tbl").Table.Rows.Count < 200
ActivePresentation.Slides(1).Shapes("tbl").Table.Rows.Add
Wend
'Change height for all rows
For i = 1 To ActivePresentation.Slides(1).Shapes("tbl").Table.Rows.Count
ActivePresentation.Slides(1).Shapes("tbl").Table.Rows(i).Height = 8
Next i
'Fill text to the 200 cells
For i = 1 To 200
ActivePresentation.Slides(1).Shapes("tbl").Table.Cell(i, 1).Shape.TextFrame.TextRange.Text = i
Next i
End Sub
以下行引发错误。
ActivePresentation.Slides(1).Shapes("tbl").Table.Cell(i, 1).Shape.TextFrame.TextRange.Text = i
我复制了你的代码并进行了测试,遇到了同样的问题,有趣的是,在索引 170 处出现了几次(但这可能是巧合)。
当代码因该错误而停止并且我按下“调试”时,我总是可以继续(通过使用 F5)并且代码成功执行。
不知何故,PowerPoint 处理 VBA 请求的速度不够快。我只需
DoEvents
在循环内添加一个,问题就解决了。我稍微修改了你的代码。这样,当你使用对象变量时,程序员的工作就轻松多了。代码如下: