[问题] 关于VBA 自动存盘的问题

楼主: skymt333 (..............)   2022-03-30 14:46:18
我在A档案写入
Private Sub workbook_open()
Call AAAsave
End Sub
Private Sub AAASsave()
Application.OnTime Now + TimeValue("00:00:10"), "ThisWorkBook.AAA"
End Sub
Private Sub AAA()
ThisWorkbook.save
Call AAAsave
End Sub
我在B档写入
Private Sub workbook_open()
Call BBBsave
End Sub
Private Sub BBBsave()
Application.OnTime Now + TimeValue("00:00:15"), "ThisWorkBook.BBB"
End Sub
Private Sub BBB()
ThisWorkbook.save
Call BBBsave
End Sub
但现在发生一个问题,两个档案一起打开后,我关掉B档案后,可是当A档案自动存盘时,
B档案就会被开启。我关掉A档后,当B档案自动储存开始时,关掉的A档就会被开启。
可否有人能指点一下小弟原因,或是这样写错在哪,
万分感谢
作者: waiter337 (给开司一罐苏格登)   2022-03-30 20:48:00
Private Sub AAASsave()Set wb1 = NothingOn Error Resume NextSet wb1 = Workbooks("a1.xlsm")On Error GoTo 0If Not wb1 Is Nothing ThenApplication.OnTime Now + TimeValue("00:00:10"), "ThisWorkBook.AAA"End IfEnd SubPrivate Sub BBBsave() 也仿照改 档名要改还是不行的话 就改下面这个Private Sub AAA()Set wb1 = NothingOn Error Resume NextSet wb1 = Workbooks("a1.xlsm") '这个档案的档名On Error GoTo 0If Not wb1 Is Nothing ThenThisWorkbook.SaveCall AAAsaveEnd IfEnd Sub另外补充....你的这个写法属于连续触发的写法aaasave() 跟aaa() 原本就是一套 被你分开写了原本应该是这样写的Private Sub AAAsave()ThisWorkbook.saveApplication.OnTime Now + TimeValue("00:00:10"),"ThisWorkBook.AAAsave" ,FalseEnd Sub所以最后可以改成Private Sub AAAsave()Set wb1 = Nothing: On Error Resume NextSet wb1 = Workbooks("a1.xlsm"): On Error GoTo 0If Not wb1 Is Nothing ThenThisWorkbook.SaveApplication.OnTime Now + TimeValue("00:00:10"), _"ThisWorkBook.AAAsave", FalseEnd IfEnd Sub总之就是加入了一个判断工作簿是否开启才能触发定时器
楼主: skymt333 (..............)   2022-03-30 23:44:00
照W大您的方式修改后好像还是停不住但还是感谢您指出问题点,我再研究一下如何改 感谢
作者: waiter337 (给开司一罐苏格登)   2022-03-31 10:03:00
楼主: skymt333 (..............)   2022-03-31 13:57:00
还让您弄教学影片,真是不好意思,我晚上下班后研究,感谢啊

Links booklink

Contact Us: admin [ a t ] ucptt.com