目标:我正在尝试自动关闭工作簿以查找我更新的报告,因为有用户打开它们,忘记在晚上关闭它们。我已将自动关闭时间设置为上午12点。
问题1:所以我已经有了几个解决这个问题的方法。我通过google上的一些搜索找到了答案,并结合了几段代码来获得我想要的内容。现在我想知道是否可以使用excel vba auto save&只关闭一个模块或ThisWorkbook。基本上将所有代码保存在一个地方。
问题2:我知道第一和第二次宏观工作我想知道哪种更有效和干净,为什么?
1ST MACRO
'插入ThisWorkbook
Private Sub Workbook_Open()
Static SchedSave
If SchedSave <> 0 Then
Application.OnTime SchedSave, "SaveWork", , False
End If
SchedSave = TimeValue("09:29:00") ' Insert Desired time in Military
Application.OnTime SchedSave, "SaveWork", , True
End Sub
'插入模块
Sub SaveWork()
ThisWorkbook.Save
ThisWorkbook.Close
End Sub
2ND MACRO
'插入ThisWorkbook
Private Sub Workbook_Open()
Reset
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Reset
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Reset
End Sub
'插入模块
Sub Reset()
Static SchedSave
If SchedSave <> 0 Then
Application.OnTime SchedSave, "SaveWork", , False
End If
SchedSave = TimeValue("12:00:00") ' 12AM
Application.OnTime SchedSave, "SaveWork", , True
End Sub
Sub SaveWork()
ThisWorkbook.Save
ThisWorkbook.Close
End Sub
同时发布:http://www.mrexcel.com/forum/excel-q...ml#post3830083(这是我获得帮助以使第一个宏工作的地方)
答案 0 :(得分:0)
我可能不是天才,但没有什么能阻止你把&#34;模块代码&#34;在&#34; thisworkbook&#34;。
我不知道你为什么要打电话给#34;重置&#34;每次打开工作簿时都会显示宏,每次更改工作表时......如果打开工作簿,工作表都没有激活?我说第一个是最好的。
编辑:大声笑我没看到未格式化的内容&#39;将其插入此工作簿