2013-07-16 8 views
0

Я делаю представление цикла в PowerPoint, и мне нужен обратный отсчет до определенной даты.Значение ошибки вне диапазона, vba ppt

При использовании кода ниже я получаю следующее сообщение об ошибке:

ошибка времени выполнения «-2147024809 (80070057)»: Указанное значение находится вне диапазона.

Sub Countdown() 
Dim thedate As Date 
Dim daycount As Long 
Dim Icount As Integer 
Icount = ActivePresentation.Slides(1).Shapes.Count - 1 
thedate = "25/12/2013" 
daycount = DateDiff("d", Now, thedate) 
Select Case daycount 
    Case Is > 1 
     ActivePresentation.Slides(1).Shapes(Icount) _ 
     .TextFrame.TextRange = daycount & " Days to go!" 
    Case Is = 1 
     ActivePresentation.Slides(1).Shapes(Icount) _ 
     .TextFrame.TextRange = daycount & " Day to go!" 
    Case Else 
     ActivePresentation.Slides(1).Shapes(Icount) _ 
     .TextFrame.TextRange = "It's here!" 
End Select 
End Sub 

Пожалуйста, помогите!

+1

, какая линия вам получить ошибку? сколько слайдов в презентации? попробуйте изменить 'thedate' на' 2013-12-25' ... попытайтесь добавить свойство '.Text' после' .TextRange' ... –

ответ

0

Вам нужно хэш-знаки, чтобы разграничить значение даты

thedate = #12/25/2013# 

и это в порядке дд/мм/гггг.

Также помните, что коллекции VBA индексируются с 1, поэтому Shapes (countOfShapes) будет последней формой.

0

Ваш код:

Icount = ActivePresentation.Slides(1).Shapes.Count - 1 
..... 
Select Case daycount 
    Case Is > 1 
     ActivePresentation.Slides(1).Shapes(Icount) _ 

Если есть только одна форма на слайде, ICount будет 0 ActivePresentation.Slides (1) .Shapes (Icount) будет выдавать ошибку

Смежные вопросы