【问题标题】:How to date stamp last Sunday's date如何日期戳上周日的日期
【发布时间】:2018-07-29 04:42:36
【问题描述】:

我希望在打开电子表格时在电子表格上印上几个日期。

我目前的脚本如下:

Private Sub Workbook_Open()

'Automate start time on opening
    With Worksheets("Time Recording Estimate")
        If IsEmpty(.Range("B4")) Then .Range("B4").Value = "Start"
    End With
End Sub

我现在还想为最后一个星期日添加一个邮票,希望它看起来像下面这样:

Private Sub Workbook_Open()

'Automate start time on opening
    With Worksheets("Time Recording Estimate")
        If IsEmpty(.Range("B4")) Then 
            .Range("B4").Value = "Start"
            .Range("V3").Value = Now() - Weekday(Now()) + 1
    End With
End Sub

我不确定公式的哪一部分是错误的并且没有通过。

非常感谢您提供的任何帮助。

【问题讨论】:

  • 那么,出了什么问题?你有错误吗?包含您的代码是一件好事 - 如果可能的话,将其最小化到问题所在的部分也是一个好主意。 (即,如果它只是 计算错误,那么您只需要包含公式。)更多信息请访问:minimal reproducible example
  • @ashleedawg,我在 Private Sub Workbook_Open() 行上得到了一个亮点......脚本根本不会运行......
  • 它没有给你一个错误?
  • @ashleedawg,不,不是物理错误消息。
  • 当它停止时,黄色突出显示的行(代码中断),当你按下 F5 时会发生什么(继续运行宏)

标签: excel vba date timestamp date-math


【解决方案1】:

您的代码似乎缺少End If

Private Sub Workbook_Open()

'Automate start time on opening
    With Worksheets("Time Recording Estimate")
        If IsEmpty(.Range("B4")) Then
            .Range("B4").Value = "Start"
            .Range("V3").Value = Now() - Weekday(Now()) + 1
        End If
    End With
End Sub

一旦我添加了它(并将工作表名称更改为我实际拥有的名称),它就会正常运行:如果单元格 B4 为空,那么它将“开始”放在单元格 B4 和星期天的日期(今天这种情况下,因为它是星期天)在单元格V3

我建议您[总是]将此行添加到任何模块的顶部:

Option Explicit

这将“强制”正确声明和使用变量、对象、属性等,并在将来为您省去很多麻烦。

另外,您应该编译代码,这样您就可以看到问题所在。 Here is a quick overview 的进程。

【讨论】:

    猜你喜欢
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多