[問題] 關於VBA 自動存檔的問題

看板Office作者 (..............)時間2年前 (2022/03/30 14:46), 編輯推噓1(1047)
留言48則, 2人參與, 2年前最新討論串1/1
我在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檔就會被開啟。 可否有人能指點一下小弟原因,或是這樣寫錯在哪, 萬分感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.3.34 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1648622780.A.3B4.html

03/30 20:48, 2年前 , 1F
Private Sub AAASsave()
03/30 20:48, 1F

03/30 20:49, 2年前 , 2F
Set wb1 = Nothing
03/30 20:49, 2F

03/30 20:49, 2年前 , 3F
On Error Resume Next
03/30 20:49, 3F

03/30 20:49, 2年前 , 4F
Set wb1 = Workbooks("a1.xlsm")
03/30 20:49, 4F

03/30 20:49, 2年前 , 5F
On Error GoTo 0
03/30 20:49, 5F

03/30 20:49, 2年前 , 6F
If Not wb1 Is Nothing Then
03/30 20:49, 6F

03/30 20:49, 2年前 , 7F
Application.OnTime Now + TimeValue("00:00:10"), "Th
03/30 20:49, 7F

03/30 20:50, 2年前 , 8F
isWorkBook.AAA"
03/30 20:50, 8F

03/30 20:50, 2年前 , 9F
End If
03/30 20:50, 9F

03/30 20:50, 2年前 , 10F
End Sub
03/30 20:50, 10F

03/30 20:50, 2年前 , 11F
Private Sub BBBsave() 也仿照改 檔名要改
03/30 20:50, 11F

03/30 20:59, 2年前 , 12F
還是不行的話 就改下面這個
03/30 20:59, 12F

03/30 21:02, 2年前 , 13F
Private Sub AAA()
03/30 21:02, 13F

03/30 21:02, 2年前 , 14F
Set wb1 = Nothing
03/30 21:02, 14F

03/30 21:02, 2年前 , 15F
On Error Resume Next
03/30 21:02, 15F

03/30 21:02, 2年前 , 16F
Set wb1 = Workbooks("a1.xlsm") '這個檔案的檔名
03/30 21:02, 16F

03/30 21:02, 2年前 , 17F
On Error GoTo 0
03/30 21:02, 17F

03/30 21:02, 2年前 , 18F
If Not wb1 Is Nothing Then
03/30 21:02, 18F

03/30 21:02, 2年前 , 19F
ThisWorkbook.Save
03/30 21:02, 19F

03/30 21:02, 2年前 , 20F
Call AAAsave
03/30 21:02, 20F

03/30 21:03, 2年前 , 21F
End If
03/30 21:03, 21F

03/30 21:03, 2年前 , 22F
End Sub
03/30 21:03, 22F

03/30 21:04, 2年前 , 23F
另外補充....
03/30 21:04, 23F

03/30 21:04, 2年前 , 24F
你的這個寫法屬於連續觸發的寫法
03/30 21:04, 24F

03/30 21:05, 2年前 , 25F
aaasave() 跟aaa() 原本就是一套 被你分開寫了
03/30 21:05, 25F

03/30 21:05, 2年前 , 26F
原本應該是這樣寫的
03/30 21:05, 26F

03/30 21:06, 2年前 , 27F
Private Sub AAAsave()
03/30 21:06, 27F

03/30 21:06, 2年前 , 28F
ThisWorkbook.save
03/30 21:06, 28F

03/30 21:06, 2年前 , 29F
Application.OnTime Now + TimeValue("00:00:10"),
03/30 21:06, 29F

03/30 21:07, 2年前 , 30F
"ThisWorkBook.AAAsave" ,False
03/30 21:07, 30F

03/30 21:07, 2年前 , 31F
End Sub
03/30 21:07, 31F

03/30 21:09, 2年前 , 32F
所以最後可以改成
03/30 21:09, 32F

03/30 21:09, 2年前 , 33F
Private Sub AAAsave()
03/30 21:09, 33F

03/30 21:09, 2年前 , 34F
Set wb1 = Nothing: On Error Resume Next
03/30 21:09, 34F

03/30 21:09, 2年前 , 35F
Set wb1 = Workbooks("a1.xlsm"): On Error GoTo 0
03/30 21:09, 35F

03/30 21:09, 2年前 , 36F
If Not wb1 Is Nothing Then
03/30 21:09, 36F

03/30 21:09, 2年前 , 37F
ThisWorkbook.Save
03/30 21:09, 37F

03/30 21:09, 2年前 , 38F
Application.OnTime Now + TimeValue("00:00:10"), _
03/30 21:09, 38F

03/30 21:09, 2年前 , 39F
"ThisWorkBook.AAAsave", False
03/30 21:09, 39F

03/30 21:09, 2年前 , 40F
End If
03/30 21:09, 40F

03/30 21:10, 2年前 , 41F
End Sub
03/30 21:10, 41F

03/30 21:14, 2年前 , 42F
總之就是加入了一個判斷工作簿是否開啟才能觸發定時器
03/30 21:14, 42F

03/30 23:44, 2年前 , 43F
照W大您的方式修改後好像還是停不住
03/30 23:44, 43F

03/30 23:46, 2年前 , 44F
但還是感謝您指出問題點,我再研究一下如何改 感謝
03/30 23:46, 44F

03/31 10:03, 2年前 , 45F

03/31 10:11, 2年前 , 46F

03/31 13:57, 2年前 , 47F
還讓您弄教學影片,真是不好意思,我晚上下班後研究,感
03/31 13:57, 47F

03/31 13:57, 2年前 , 48F
謝啊
03/31 13:57, 48F
文章代碼(AID): #1YG_oyEq (Office)
文章代碼(AID): #1YG_oyEq (Office)