Чтение данных из таблицы не работает в конкретной таблице - PullRequest
0 голосов
/ 26 апреля 2019

В настоящее время я пытаюсь создать новую презентацию PPT, удаляя ненужные слайды из презентации.Слайды и их номера выбираются в первом столбце таблицы, которая у меня есть в Excel.

Я попытался решить эту проблему, взяв другую таблицу вместо той, которую я хочу использовать, и она сработала.,По какой-то причине он, кажется, не работает с «Таблицей 3».

Sub CreatingNewPresentation()

Dim Destination1PPT As String
Dim ppApp As PowerPoint.Application
Dim ppPres As PowerPoint.Presentation
Dim ppSlide As PowerPoint.Slide
Dim myTable As ListObject
Dim TempArray As Variant
Dim x As Long

If MsgBox("This can take a while", vbOKCancel + vbExclamation, "Creating new presentation") = vbCancel Then

Exit Sub

Else
    Set ppApp = CreateObject("PowerPoint.Application")
        Destination1PPT = "C:\Users\Steffen\Desktop\Test2\1.pptx"
    Set ppPres = ppApp.Presentations.Open(Destination1PPT)
        ppApp.Visible = True
        ppApp.Activate
    Set myTable = ActiveSheet.ListObjects("Table3")
        TempArray = myTable.ListColumns(1).DataBodyRange

    For x = ppApp.ActivePresentation.Slides.Count To 1 Step -1

        If IsError(Application.Match(x, TempArray, False)) Then

                 ppApp.ActivePresentation.Slides(x).Delete

        End If
    Next
End If

End Sub

Я ожидаю, что код откроет презентацию и удалит все слайды, кроме тех, которые я храню в «Таблице 3» - столбец 1. Что этовместо этого - просто открыть презентацию и больше ничего.Нет сообщения об ошибке.

1 Ответ

0 голосов
/ 29 апреля 2019

Я нашел "глупую" ошибку, которую я сделал.Я получаю ВСЕ записи данных из указанной таблицы, а не только видимые записи данных.

Это помогает:

 Set myTable = ThisWorkbook.Sheets("Sheet1").ListObjects("Table3")
 TempArray = myTable.ListColumns(1).DataBodyRange.SpecialCells(xlCellTypeVisible)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...