【问题标题】:Date logic in excel [closed]excel中的日期逻辑[关闭]
【发布时间】:2015-03-31 13:35:14
【问题描述】:

我正在尝试创建一个自动电子表格,该电子表格将每周更改日期,但也会提前 2 周。

因此,它是教师可以预订房间的时间表。在顶部,它显示他们预订的星期几,例如它会说 从 2015 年 3 月 30 日开始的一周,在其他工作表上它在前几周的时间上增加 7 天,以便在其他工作表上显示提前 2 周

我想创建一些逻辑,以便当第 1 周结束时,id 有一个日期变量来检查第 1 周是否结束,然后将第 1 周设置为第 3 周后的第 7 天,但使用我当前的设置然后将第 2 周和第 3 周推前一周,这是我不想要的

你能帮我弄清楚需要什么样的逻辑才能让它工作吗?

Sub SetDate()
Dim Week1 As Date
Dim Week2 As Date
Dim Week3 As Date
Dim Week4 As Date


Week1 = DateValue("30 / 3 / 2015")
Week2 = DateAdd("d", 7, Week1)
Week3 = DateAdd("d", 7, Week2)
Week4 = DateAdd("d", 7, Week3)

Worksheets("Week1").Range("B4").Value = Week1
Worksheets("Week2").Range("B4").Value = Week2
Worksheets("Week3").Range("B4").Value = Week3

End Sub

【问题讨论】:

  • 您希望 Week1 始终是本周的 Monday 吗??
  • 那将是最好的方法,是的,但是由于 3 张不同的周有 3 张纸,这意味着将所有那些实际上不可行的单元格数据传输到那个循环中当第 1 周将变为第 3 周后 7 天,然后当第 2 周结束时将变为第 3 周后 7 天,然后第 1 周将恢复为最早的一周,依此类推
  • 如果我可以上传图片会更清楚,但我没有足够的积分
  • 也忽略一周后的 1,它确实不相关,只是将其命名为与其他周不同,所以它们实际上都是一周
  • 将图片上传到 imgur.com,然后在您的问题中发布链接。

标签: vba date excel


【解决方案1】:

我不确定我是否正确理解了这个问题,但也许是这样的?

基本上,我们使用您的原始日期设置日期,然后检查是否有任何日期在该时间之前 - 如果是,我们将其递增并再次检查。那样的话,如果我们需要循环几个星期,它会一直循环直到它们都是最新的?

请试一试,如果这不是您需要的,请告诉我,我会帮助您解决问题。

我通过将日期设置为 2015 年 3 月 30 日、2015 年 4 月 6 日和 2015 年 4 月 13 日来测试它

第 1 周变为 2015 年 4 月 20 日,其他时间保持不变(我相信这是预期的)。如果我们回滚几周以使 2 过去(实际上不应该发生),您将获得相同的日期偏移 - 只是所有未来的。

Sub SetDate()
Dim Week1 As Date
Dim Week2 As Date
Dim Week3 As Date
Dim Week4 As Date

Week1 = Worksheets("Week1").Range("B4").Value
Week2 = Worksheets("Week2").Range("B4").Value
Week3 = Worksheets("Week3").Range("B4").Value

Dim FoundOldDate

Do
FoundOldDate = False
If Week1 - Date < 0 Then
    Week1 = DateAdd("d", 7, Week3)
    FoundOldDate = True
End If
If Week2 - Date < 0 Then
    Week2 = DateAdd("d", 7, Week1)
    FoundOldDate = True
End If
If Week3 - Date < 0 Then
    Week3 = DateAdd("d", 7, Week2)
    FoundOldDate = True
End If
Loop While FoundOldDate

Worksheets("Week1").Range("B4").Value = Week1
Worksheets("Week2").Range("B4").Value = Week2
Worksheets("Week3").Range("B4").Value = Week3

End Sub

【讨论】:

  • 这看起来正是我所需要的。我需要接受测试。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 2020-05-22
相关资源
最近更新 更多