2016-03-26 3 views
0

Я использую следующий код Excel VBA для вставки текущей даты в существующий текущий слайд слайда. Прямо сейчас, я могу вставить текущую дату в слайд Powerpoint во втором текстовом поле, но я не могу изменить формат даты в соответствии с моим требованием. Дата появляется как 3/26/2016, в то время как я должен изменить его, как 26 марта 2015 г. Обратите внимание, что Я не занимаюсь установкой даты в нижнем колонтитуле, мне нужно добавить дату в поле «Текст».Код VBA для изменения формата даты PPT-слайда внутри текстового поля

Sub Date() 
Dim PPApp As PowerPoint.Application 
Dim PPPres As PowerPoint.Presentation 
Dim PPSlide As PowerPoint.Slide 
Dim PPshape As PowerPoint.Shape 
Dim objPPTX As Object 
Dim Todate As Date     
Todate = DateValue(Now) 

Todate = Format(Todate, "mmmm d, yyyy")''tried this 

'or this ? 
Todate = Format(CDate(Todate), "mmmm d, yyyy")'''Tried this also 

Application.DisplayAlerts = False 

Set objPPTX = CreateObject("PowerPoint.Application") 
objPPTX.Visible = True 
objPPTX.Presentations.Open "path.pptx" 

'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) ''copy chart on existing slide 

Set PPshape = PPSlide.Shapes.AddShape(Type:=msoShapeRectangle, Left:=220, Top:=150, Width:=270, Height:=75) 
With PPshape 
.Fill.ForeColor.RGB = RGB(115, 111, 112) 
.TextFrame.TextRange.Text = Todate 
Todate = Format(Todate, "mmmm d, yyyy") 
'or this ? 
Todate = Format(CDate(Todate), "mmmm d, yyyy") 
.TextFrame.TextRange.Font.Name = "Arial" 
.TextFrame.TextRange.Font.Color = vbYellow 
.TextFrame.TextRange.Font.Size = 18 

End Sub 

ответ

0

Вот ваша проблема. Вы задаете текст текстового фрейма в Todate, а затем изменить форматирование Todate:

.TextFrame.TextRange.Text = Todate 
Todate = Format(Todate, "mmmm d, yyyy") 

Вместо этого попробуйте:

.TextFrame.TextRange.Text = Format(Now, "mmmm dd, yyyy") 
+0

Thanks..Works большой – Muneeb

0

Документы, касающиеся кода Excel VBA, указанного в вашем вопросе, решение может быть таким, как показано в следующем примере:

Sub DisplayDate() 
    Range("A1").Value = CDate(DateValue(Now)) 
    Range("A1").NumberFormat = "mmmm d, yyyy" 
End Sub 
Смежные вопросы