将文本框文本设置为今天/明天/下一天/等。自动?

时间:2010-06-30 15:34:32

标签: datetime vba powerpoint powerpoint-vba

我是VBA编程的新手,但我现在要做的就是每天更新一张PowerPoint幻灯片。这是我们大厅中显示的天气预报幻灯片,目前我每天都会手动更新七天预报。这意味着在我进入之前,它会将当天显示为昨天的日期,而七天的预测是仍然在预测中显示昨天的日期。最后,我想让它自动提取天气数据,但是对于这个问题的范围,我只想弄清楚如何在一周的七天中在文本框中显示日期。

基本上,顶部有一个标题:(例如2010年6月30日星期三)

然后七天在以下栏目中设置:(例如7月2日7月1日6月30日......)

我想将标题设置为显示的当前日期,然后将下面的七个文本框设置为当天,然后是明天,然后是第二天......依此类推,直到第七天。

我如何增加DateTime?谢谢!

4 个答案:

答案 0 :(得分:5)

如果您希望以1天为单位继续前进,可以通过添加DateTime变量来增加它们:

Dim d As DateTime
d = Now()

d = d + 1 ''# => tomorrow

这可行,因为在内部,DateTime表示为浮点数,逗号之前的整天和逗号之后的几天。 (因此,添加0.5会有效地增加12小时,但我不建议这样做。)

对于更复杂的操作,例如添加月份或小时,有DateAdd()see MSDN)。

d = DateAdd("h", 12, d)  ''#=> 12 hours

您也可以使用DateAdd()“添加”负值。

答案 1 :(得分:3)

这是在Excel中; VBA函数名称将相同。 Format和DateAdd函数是您正在寻找的。

Public Sub writeDates()
Dim x As Date, i As Integer
    x = Now
    For i = 1 To 7
       ThisWorkbook.Worksheets(1).Range("A" & i).Value = Format(DateAdd("d", i, x), "dddd, mmmm dd, yyyy")
    Next
End Sub

答案 2 :(得分:2)

这些链接应该有所帮助。

  1. Dates And Times In Excel;
  2. Date & Time
  3. Now()函数,如果你想获得日期和时间。请参阅为添加和减法提供的链接文章。如果你碰巧只对当天的日期感兴趣,Date()应该只给你一个日期。

    这是一篇关于VBA功能的有趣文章。

    Understanding VBA Functions and Their Uses

答案 3 :(得分:1)

如果你仍然有兴趣这样做让我知道,因为我现在完成了同样的事情。 我使用一个插件,它给我自动化事件,如幻灯片更改,作为pps,因为内置的一旦转换为pps后无法工作(用于自动启动电脑和自动加载演示),这就是自动事件,谷歌或给我发电子邮件为文件。 从那个i然后更新一个形状(然后你可以使用nameit addin命名形状以方便或使用vba的imediate窗口继续改变形状数字,直到你找到正确的耻辱(2003年的痛苦)....我的幻灯片每20秒更换一次,所以我更新了没有秒数的时间。

我还有其他的哨声,比如用日期用文字标记来读取日期,以便在某些日子里欢迎来到我的博客等。

例如,时间更新...完成自动更换幻灯片 ActivePresentation.SlideMaster.Shapes(3).TextFrame.TextRange.Text =格式(现在,“dddd dd mmmm yyyy”)& “。”&格式(现在,“hh:mm”)