我是VBA编程的新手,但我现在要做的就是每天更新一张PowerPoint幻灯片。这是我们大厅中显示的天气预报幻灯片,目前我每天都会手动更新七天预报。这意味着在我进入之前,它会将当天显示为昨天的日期,而七天的预测是仍然在预测中显示昨天的日期。最后,我想让它自动提取天气数据,但是对于这个问题的范围,我只想弄清楚如何在一周的七天中在文本框中显示日期。
基本上,顶部有一个标题:(例如2010年6月30日星期三)
然后七天在以下栏目中设置:(例如7月2日7月1日6月30日......)
我想将标题设置为显示的当前日期,然后将下面的七个文本框设置为当天,然后是明天,然后是第二天......依此类推,直到第七天。
我如何增加DateTime?谢谢!
答案 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函数是您正在寻找的。 p>
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)
这些链接应该有所帮助。
Now()函数,如果你想获得日期和时间。请参阅为添加和减法提供的链接文章。如果你碰巧只对当天的日期感兴趣,Date()
应该只给你一个日期。
这是一篇关于VBA功能的有趣文章。
答案 3 :(得分:1)
如果你仍然有兴趣这样做让我知道,因为我现在完成了同样的事情。 我使用一个插件,它给我自动化事件,如幻灯片更改,作为pps,因为内置的一旦转换为pps后无法工作(用于自动启动电脑和自动加载演示),这就是自动事件,谷歌或给我发电子邮件为文件。 从那个i然后更新一个形状(然后你可以使用nameit addin命名形状以方便或使用vba的imediate窗口继续改变形状数字,直到你找到正确的耻辱(2003年的痛苦)....我的幻灯片每20秒更换一次,所以我更新了没有秒数的时间。
我还有其他的哨声,比如用日期用文字标记来读取日期,以便在某些日子里欢迎来到我的博客等。
例如,时间更新...完成自动更换幻灯片 ActivePresentation.SlideMaster.Shapes(3).TextFrame.TextRange.Text =格式(现在,“dddd dd mmmm yyyy”)& “。”&格式(现在,“hh:mm”)