Datetime 是否自动将文本框文本设置为今天/明天/次日/等?

Datetime 是否自动将文本框文本设置为今天/明天/次日/等?,datetime,vba,powerpoint,Datetime,Vba,Powerpoint,我是VBA编程新手,但我现在想做的是制作一张每天更新的PowerPoint幻灯片。这是一张展示在大厅里的天气预报幻灯片,目前我每天都会手动更新七天预报。这意味着,在我进来之前,它将当前日期显示为昨天的日期,而七天预测仍将在预测中显示昨天的日期。最终,我希望它也能自动提取天气数据,但就这个问题的范围而言,我只是想弄清楚如何在文本框中显示一周中七天的日期 基本上,顶部有一个标题:(例如,2010年6月30日,星期三) 然后在列中设置七天:(例如6月30日7月1日7月2日…) 我想将标题设置为当前日期

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

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

然后在列中设置七天:(例如6月30日7月1日7月2日…)

我想将标题设置为当前日期,如图所示,然后将下面的七个文本框设置为当前日期,然后是明天,然后是第二天。。。一直到第七天


如何增加日期时间?谢谢

如果要按1天的步骤进行,可以通过添加DateTime变量来增加这些变量:

Dim d As DateTime
d = Now()

d = d + 1 ''# => tomorrow
这是因为DateTime在内部表示为浮点数,逗号前有整天,逗号后有小数天。(因此,添加0.5实际上会增加12小时,尽管我不建议这样做。)

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


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

这些链接应该会有所帮助

  • )
  • 函数的作用是:如果希望获取日期和时间。请参阅为加减法提供的链接文章。如果你碰巧对某一天的某个日期感兴趣,那么你应该只知道该日期

    下面是一篇关于VBA函数的有趣文章


    这是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
    

    如果你仍然有兴趣这样做,让我知道,因为我现在完成了同样的事情。 我使用一个插件,它可以为我提供自动事件,例如幻灯片更改,这些事件可以作为pps使用,因为内置事件在转换为pps(用于自动启动pc和自动加载演示文稿)后不起作用,这被称为autoevents、google it或通过电子邮件向我发送文件。 在此基础上,我更新了一个形状(您可以使用nameit addin为形状命名,以方便使用,或使用vba的imediate窗口不断更改形状编号,直到您找到正确的羞耻感(2003年的痛苦)…我的幻灯片每20秒更改一次,因此我更新了时间,而没有将秒添加到形状中

    我还有其他的口哨声,比如在特定的日子里,用文字标记行来表示欢迎来到我的博客等等

    例如,对于时间更新…在幻灯片更改的自动事件中完成
    ActivePresentation.SlideMaster.Shapes(3.TextFrame.TextRange.Text=格式(现在是“dddd-dd-mmmm-yyyy”)&“.”格式(现在是“hh:mm”)

    有没有想过用动态生成的HTML页面来代替PowerPoint幻灯片?应该更容易操作。不幸的是,我做不到这一点……我最想做的就是将PowerPoint完全从我的生活中抹去,哈哈,但这张幻灯片只是我从di发送给我的几个PowerPoint幻灯片序列中的一张也必须显示不同的来源。我感谢所有人的帮助!我将使用此答案,因为它最接近我在本例中所需的内容。感谢您提供的信息和报价,不过,我很久以前就已经完成了。:)
    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