如题,
我想通过工作表的修改来触发保存功能,但是我不想保存的太频繁,希望加一个判断,
就是上一次Workbook_SheetChange与这一次Workbook_SheetChange作一个时间对比,满足时间差在15秒的时候才执行保存动作。SheetChange
我想通过工作表的修改来触发保存功能,但是我不想保存的太频繁,希望加一个判断,
就是上一次Workbook_SheetChange与这一次Workbook_SheetChange作一个时间对比,满足时间差在15秒的时候才执行保存动作。SheetChange
Private Sub Workbook_Open()
t1 = Now()
End SubPrivate Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim t As Date
t = Now()
s = DateDiff("s", t1, t)
If s > 15 Then
MsgBox ">" & s
t1 = t
Else
MsgBox s
End If
End Sub
Public t1 As Date
Public t As DatePrivate Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWindow.DisplayWorkbookTabs = True '显示工作表标签
'ActiveWindow.DisplayWorkbookTabs = False '不显示工作表标签
ThisWorkbook.Save
End SubPrivate Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ThisWorkbook.Sheets(1).Cells(1, 10) = t
End SubPrivate Sub Workbook_Open()
t1 = Now()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'ActiveWindow.DisplayWorkbookTabs = True '显示工作表标签
ActiveWindow.DisplayWorkbookTabs = False '不显示工作表标签
Application.OnTime TimeValue("11:44:59"), "Sheet1.Msg1" '设置时间提醒吃中饭,哈
Application.OnTime TimeValue("16:25:59"), "Sheet1.Msg2" '设置时间下班准备
Application.OnTime Now, "Thisworkbook.SheetSave"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End SubPrivate Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
t = Now()
s = DateDiff("s", t1, t)
If s > 15 Then
ThisWorkbook.Save
Else
t1 = t
End If
End SubSub SheetSave()
If Cells(1, 10) <> t Then
ThisWorkbook.Save
End If
Call SaveTimer
End SubSub SaveTimer()
Application.OnTime Now() + TimeValue("00:04:00"), "Thisworkbook.SheetSave" '4分钟检查一次
End Sub