Я пишу этот код VBA в Excel, который вносит изменения в файл PowerPoint. Все работает нормально, кроме того, что ниже. Когда я вызываю функцию FormatICTable, я получаю ошибку времени выполнения, то есть «Несоответствие типов». Мне кажется, что объект формы, который я передаю в качестве первого аргумента, создает проблему. Какие-либо предложения ?
Sub controlPPT()
Dim PPT As Object
Set PPT = CreateObject("PowerPoint.Application")
Dim pres As Presentation
With Application.FileDialog(1)
.AllowMultiSelect = False
.Show
.Filters.Clear
.Filters.Add "PPT files", "*.pptx"
.FilterIndex = 1
If .SelectedItems.Count > 0 Then
PPT.Presentations.Open .SelectedItems(1)
Dim sld As Slide
Set pres = PPT.ActivePresentation
For Each sld In pres.Slides
sld.Select
If sld.Shapes(1).TextFrame2.TextRange.Text = "Internal comparison" Then
Call FormatICTable(sld.Shapes(2), sld)
End If
Next
pres.Save
Set pres = Nothing
End If
End With
End Sub
Function FormatICTable(shp As Shape, sld As Slide)
'My code here
End Function