【问题标题】:Save excel file every 30 seconds using system time使用系统时间每 30 秒保存一次 excel 文件
【发布时间】:2013-03-01 01:42:35
【问题描述】:

我想根据当前系统时间每 30 秒保存一个 excel 文件。所以在 HH:MM:30 和 HH:NN:00。我知道您可以使用 TimeValue 在特定时间调用宏(以保存工作簿),例如在 16:30:00(见下文)。有谁知道当当前系统时间在excel中更新为XX:XX:30或XX:XX:00时,是否可以使用此功能或其他功能来保存打开的工作簿。

Private Sub Workbook_Open()

Application.OnTime TimeValue("16:30:00"), "macro_save"

End Sub

【问题讨论】:

  • 工作簿是刚刚打开,还是有人在处理它? - 值得注意的是,如果(例如)单元格处于编辑模式,使用 OnTime 计划的宏可能不会在计划的时间运行。

标签: excel vba datetime time


【解决方案1】:

在您的工作簿代码中:

Private Sub Workbook_Open()
    If Second(Now) < 30 Then
        Application.OnTime VBA.TimeSerial(Hour(Now), Minute(Now), 30), "macro_save"
    Else
        Application.OnTime VBA.TimeSerial(Hour(Now), Minute(Now) + 1, 0), "macro_save"
    End If
End Sub

在标准模块中:

Public Sub macro_save()
    ThisWorkbook.Save
    If Second(Now) < 30 Then
        Application.OnTime VBA.TimeSerial(Hour(Now), Minute(Now), 30), "macro_save"
    Else
        Application.OnTime VBA.TimeSerial(Hour(Now), Minute(Now) + 1, 0), "macro_save"
    End If
End Sub

您可能需要处理 macro_save 代码中的错误,否则它可能会让用户非常(非常)烦人。

【讨论】:

  • 酷,很高兴能帮上忙。
猜你喜欢
  • 1970-01-01
  • 2014-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-06
  • 2017-11-08
相关资源
最近更新 更多