Я пытаюсь получить дату следующего четверга с текущей даты и записать его на первом слайде. Пока у меня есть текущая дата, но я не нашел, как получить дату следующего четверга. Например, я открываю презентацию во вторник 23.08.2016, и когда мои макросы запускаются, я хочу получить 25.08.2016 (что соответствует четвергу) на первом слайде.PowerPoint macro, чтобы получить дату следующего четверга с текущей даты
До сих пор у меня есть:
Set objPPTX = CreateObject("PowerPoint.Application")
objPPTX.Visible = True
'Adding Date on First Slide
Set PPApp = GetObject(, "Powerpoint.Application")
Set PPPres = PPApp.ActivePresentation
PPApp.ActiveWindow.ViewType = ppViewSlide
PPApp.Visible = True
Set PPSlide = PPPres.Slides(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)
' Set PPshape = PPSlide.Shapes.AddShape(Type:=msoShapeRectangle, Left:=220, Top:=150, Width:=270, Height:=75)
Set PPshape1 = PPSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, Left:=20, Top:=150, Width:=680, Height:=70)
With PPshape1
.TextFrame.TextRange.Text = "PT PM Weekly"
.TextFrame.TextRange.Font.Name = "Verdana"
.TextFrame.TextRange.Font.Color = vbBlack
.TextFrame.TextRange.Font.Size = 48
End With
Set PPshape = PPSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, Left:=350, Top:=150, Width:=680, Height:=70)
With PPshape
Todate = DateValue(Now)
oldWeekDay = Weekday(Now)
Select Case Thursday
Case oldWeekDay = 1
.TextFrame.TextRange.Text = Format(Now + 4, " dd.mm.yyyy")
Case oldWeekDay = 2
.TextFrame.TextRange.Text = Format(Now + 3, " dd.mm.yyyy")
Case oldWeekDay = 3
.TextFrame.TextRange.Text = Format(Now + 2, " dd.mm.yyyy")
Case oldWeekDay = 4
.TextFrame.TextRange.Text = Format(Now + 1, " dd.mm.yyyy")
Case oldWeekDay = 5
.TextFrame.TextRange.Text = Format(Now, " dd.mm.yyyy")
Case oldWeekDay = 6
.TextFrame.TextRange.Text = Format(Now - 1, " dd.mm.yyyy")
Case oldWeekDay = 7
.TextFrame.TextRange.Text = Format(Now - 2, " dd.mm.yyyy")
End Select
.TextFrame.TextRange.Font.Name = "Verdana"
.TextFrame.TextRange.Font.Color = vbBlack
.TextFrame.TextRange.Font.Size = 48
End With
но в конце концов я просто получить +4 от текущей даты, так что я думаю, что проблема заключается в структуре Case.
Благодарю вас за помощь, но я точно не понял, что мне нужно делать? Я не нашел решение для этого – Zigouma
textframe.textrange.text = NEXT_THURSDAY (сейчас) будет таким, каким вы будете использовать, добавьте этот код в код VBA, в новый модуль, если хотите, а затем используйте так. –
это работает thx :) – Zigouma