代码之家  ›  专栏  ›  技术社区  ›  Kevin Coppock

是否将文本框文本自动设置为“今天/明天/第二天”等?

  •  3
  • Kevin Coppock  · 技术社区  · 16 年前

    我对VBA编程还不熟悉,但现在我想做的是准备一张每天更新的PowerPoint幻灯片。这是一张天气预报幻灯片,显示在我们的大厅里,目前我每天都会手动更新七天的天气预报。这意味着,在我进来之前,它将当前日期显示为昨天的日期,而七天预测仍将在预测中显示昨天的日期。最后,我希望它也能自动提取天气数据,但对于这个问题的范围,我只是想知道如何在文本框中显示一周中七天的日期。

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

    然后将七天分栏设置为:(例如6月30日、7月1日、7月2日……)

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

    如何增加日期时间?谢谢!

    4 回复  |  直到 8 年前
        1
  •  5
  •   Tomalak    16 年前

    如果要在1天的步骤中继续,可以通过添加日期时间变量来增加这些变量:

    Dim d As DateTime
    d = Now()
    
    d = d + 1 ''# => tomorrow
    

    这是因为在内部,日期时间表示为一个浮点数,在逗号之前是整天,在逗号之后是几天的分数。(因此,添加0.5将有效地增加12小时,尽管我不建议这样做。)

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

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

    您可以使用“添加”负值 DATE ADD() 也是。

        2
  •  3
  •   Tahbaza    16 年前

    在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
    
        3
  •  2
  •   Community Mohan Dere    8 年前

    这些链接应该会有所帮助。

    1. Dates And Times In Excel ;
    2. Date & Time .

    now()函数,如果要获取日期和时间。请参阅为加减提供的链接文章。 Date() 应该只给你日期,如果你有兴趣只到当天的日期。

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

    Understanding VBA Functions and Their Uses

        4
  •  1
  •   mark    14 年前

    如果你仍然有兴趣这样做,让我知道,因为我现在完成了同样的事情。 我使用了一个插件,它可以给我提供自动化事件,如幻灯片更改,作为PPS工作,因为内置的不工作,一旦转换为PPS(用于自动引导PC和自动加载演示文稿),这称为自动事件,谷歌它或电子邮件我的文件。 然后,我更新一个形状(然后,您可以使用一个名为it的加载项来命名形状以方便使用,或者使用vba的IMedite窗口来不断更改形状编号,直到找到合适的羞耻感(2003年的痛苦)。我的幻灯片每20秒更改一次,因此我会更新时间,而不将秒改为形状。

    我还有其他的铃声和口哨,比如在特定的日子里,用文本标记行来阅读往来的日期,以表示欢迎来到我的博客。

    例如时间更新…在幻灯片更改的自动事件中完成 activepresentation.slidemaster.shapes(3).textframe.textfrange.text=格式(现在,“dd dd-dd-mmmm-yyyy”)&。&格式(现在为“hh:mm”)