在 powerpoint 中对多张幻灯片进行日期排序

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

所以我在这里有路标,希望有人可以帮我回答这个问题。

我正在用powerpoint制作一本可以打印的日记。每张幻灯片(页面)都有一个 1 列 7 行的简单表格。我想要的是在第一行中输入日期,并让它自动填充该页面以及其他幻灯片上的其他日期,以便根据我在表格第一行中输入的内容来确定完整的 12 个月的日期.

我知道这会涉及VBA,我找到了一些答案,但没有完全回答我想要的。

如果需要,我可以使用占位符文本框/形状,因为我可以将轮廓变白,这样它就不会显示,因此不必将文本直接输入到表格中,但我无法弄清楚这一点。

所以我发现了其他人发布到另一个问题的一些 VBA 代码,它输入了第一个日期,但没有输入其他日期,所以不确定这是否最终会成为此代码的编辑 - 或者它是否需要完全其他的东西。我尝试过的代码如下:

Sub addDates() 
    Dim osld As Slide 
    Dim L As Long 

    Set osld = ActivePresentation.Slides(1) 
    For L = 0 To 364 
        osld.Shapes(1).TextFrame2.TextRange = Format(DateAdd("d", L, #1/1/2021#), "dddd, mmmm d") 

        If L < 364 Then 
            Set osld = ActivePresentation.Slides.AddSlide(ActivePresentation.Slides.Count + 1, osld.CustomLayout) 
        End If 
    Next L 

End Sub
vba powerpoint
1个回答
0
投票

微软文档:

Slide.CustomLayout 属性 (PowerPoint)

Slides.AddSlide 方法(PowerPoint)

Shapes.AddTable 方法(PowerPoint)

Sub addDates()
    Dim L As Long
    Dim layout As CustomLayout
    Dim oSld As Slide, oShp As Shape
    With ActivePresentation
        Set oSld = .Slides(1)
        Set layout = oSld.CustomLayout
        For L = 0 To 3  '  364,  for testing
            If .Slides.Count < L + 1 Then
                Set oSld = .Slides.AddSlide(.Slides.Count + 1, layout)
            End If
            Set oShp = oSld.Shapes.AddTable(7, 1)
            oShp.Table.Cell(1, 1).Shape.TextFrame.TextRange.Text = Format(DateAdd("d", L, #1/1/2021#), "dddd, mmmm d")
        Next L
    End With
End Sub

© www.soinside.com 2019 - 2024. All rights reserved.