使用幻灯片范围填充数组

问题描述 投票:0回答:2

我想遍历所有幻灯片,如果条件适用,则将幻灯片索引存储到一个数组中。这是我的代码,但是我收到一个错误:

幻灯片(未知成员):非法价值。坏类型:预期变量,整数,长整数或字符串的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
arrays vba
2个回答
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构造。你得到每个变量的对象。


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
© www.soinside.com 2019 - 2024. All rights reserved.