我想遍历所有幻灯片,如果条件适用,请将幻灯片索引存储到一个数组中。这是我的代码,但是我收到了一个错误:
幻灯片(未知成员):非法值。坏类型:预期1D数组 变体,整数,长篇或字符串。
谢谢!
Private Sub folienauswahlen()
Dim arr() As Long
Dim b As Long
Dim folie As slide
With ActivePresentation
For Each folie In .Slides
If .Slides.Range(folie).SlideIndex < 3 Then
arr(b) = .Slides.Range(folie).SlideIndex
ReDim Preserve arr(0 To b) As Long
End If
Next
End With
End Sub
答案 0 :(得分:0)
在这里,试试这个:
Private Sub folienauswahlen()
ReDim arr(1 To 1) As Long
Dim b As Long
Dim folie As Slide
With ActivePresentation
b = 1
For Each folie In .Slides
If folie.SlideIndex < 3 Then
ReDim Preserve arr(1 To b) As Long
arr(b) = folie.SlideIndex
b = b + 1
End If
Next
End With
End Sub
在VBA中,您不需要.Slides.Range(folie).SlideIndex
个构造。你得到每个变量的对象。
答案 1 :(得分:0)
您正在构建一个数组,使所有幻灯片索引都高于您输入的数字(在您的示例中为3)这将构建一个高于输入数字的所有索引的数组。但似乎你可以删除输入数字上方的幻灯片而没有数组或循环滑动幻灯片。您可以删除幻灯片索引大于输入数字的所有幻灯片。
这将为您提供阵列。
Private Sub folienauswahlen()
Dim arr() As Long
Dim b As Long
Lslide = ActivePresentation.Slides.Count
b = InputBox("enter the slide number")
ReDim arr(0 To Lslide - b - 1) As Long
For x = 0 To Lslide - b - 1
arr(x) = b
b = b + 1
Next x
End Sub